- Insertion sort의 입력 : a list of keys + a new k
- Merge Sort
Running time :
- A divide-and-conquer approach :
- Divide
- Conquer
- Combine
Pseudo Code
- p=r 인 경우를 제외하고는 모두 성립. 즉, key가 하나일 때를 제외하기 위해 만든것
2. 큐를 반으로 나눈다
3~4. Merge-sort를 재귀함
5. MergeTime
결론적으로
Recursive 문제에서
첫째항 : subproblem의 개수*subproblem의 사이즈(기존대비)
따라서
- Binary Search
Binary Search 의 시간복잡도
- Selection Sort
구버전의 시간복잡도 : n+n-1+n-2+ … 1 = Θ(n^2)
[ 정리 ]
시간복잡도 Best
시간복잡도 Worst
Insertion
Θ(n)
Θ(n^2)
Merge
Θ(nlgn)
Θ(nlgn)
Selection
Θ(n^2)
Θ(n^2)
- Insertion Sort는 Stable (몇 개의 key만 움직이면 된다)
- Selection Sort 는 Stable
- Merge Sort 는 Unstable. Output을 담는 Array가 따로 필요하다
즉, Merge sort는 Selection sort보다 빠르지만 Memory Requirement가 더 크다.