티스토리 뷰
728x90
반응형
정렬에서는 최악의 경우의 수행시간이 중요하다. 그런데 각 원소를 비교하며 정렬하는 비교정렬의 경우(ex) 병합정렬, 퀵 정렬, 힙정렬 etc) 최악의 경우의 Ω(nlgn) 비교가 필요한다고 한다. 입력에 대해 순서를 결정하기 위해 필요한 비교를 트리로 나타낸 것을 결정트리라고 한다. 어떠한 입력에 대해서도 정렬된 순열을 출력하기 위해서는 입력에 대해 가능한 모든 순열을 만드는 결정트리가 존재해야 한다. 이때 결정트리의 루트와 리프 사이의 가장 긴 거리가 비교 횟수가 가장 많은 최악의 경우이며 이 값은 트리의 높이에 해당한다. n개의 입력에 대해 가능한 순열은 n!이며 이때 트리의 높이는 lg(n!) = Ω(nlg(n)) 이다. 따라서 최악의 경우는 하한은 nlg(n)이다. 즉, 비교 정렬의 경우 아무리 최적화해도 최악의 경우에 적어도 nlg(n)의 수행시간을 가진다는 것이다. 그런 측면에서 최악의 경우 O(nlg(n))을 가지는 병합정렬과 힙정렬에 대해 보다 빠른 비교 정렬은 찾기 어려울 것이다.
728x90
반응형
'알고리즘 > 이론' 카테고리의 다른 글
[알고리즘/이론]너비 우선 탐색(BFS) (0) | 2021.07.03 |
---|---|
[알고리즘/이론]그래프의 표현 (0) | 2021.07.03 |
[알고리즘/이론][BOJ 10989번]계수 정렬 (0) | 2021.06.14 |
[알고리즘/이론]루프 불변성(Loop Invariant) - 알고리즘의 타당성을 증명하기 위해.. (0) | 2021.01.22 |
[알고리즘/이론]알고리즘이란? (0) | 2021.01.20 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Git
- 영어 어휘
- 건이의 특제 떡국 끓이기
- gem5
- 구현
- C++
- 완전탐색
- 스택
- 알고리즘
- 백준
- 큐
- 이분법
- 백트래킹
- BOJ
- Verilog
- 애니메이션
- 취미
- C언어
- 구조체
- 재귀함수
- 이진탐색
- recursive
- 베릴로그
- BFS
- 메이플스토리
- 정렬
- Push
- 너비우선탐색
- backtracking
- 영화
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함
반응형
250x250