-> 블로그 이전

[Data Structure] 정렬 시간복잡도

2021. 12. 31. 14:33Major`/자료구조

정렬 별 시간복잡도

정렬 시간복잡도 공간복잡도 정렬상태
최선 평균 최악
계수 정렬
Counting Sort
O(n+k) O(n+k) O(n+k) O(k) Stable
기수 정렬
Radix Sort
O(nk) O(nk) O(nk) O(n+k) Stable
팀 정렬
Tim Sort
O(n) O(n log n) O(n log n) O(n)  
히프 정렬
Heap Sort
O(n log n) O(n log n) O(n log n) O(1) Unstable
합병 정렬
Merge Sort
O(n log n) O(n log n) O(n log n) O(n) Stable
쉘 정렬
Shell Sort
O(n) O(n1.5) O(n1.5) O(1) Unstable
퀵 정렬
Quick Sort
O(n log n) O(n log n) O(n²) O(log n) Unstable
트리 정렬
Tree Sort
O(n log n) O(n log n) O(n²) O(n)  
삽입 정렬
Insertion Sort
O(n) O(n²) O(n²) O(1) Stable
버블 정렬
Bubble Sort
O(n²) O(n²) O(n²) O(1) Stable
선택 정렬
Selection Sort
O(n²) O(n²) O(n²) O(1) Unstable

 

 

 

 

 

안정 정렬 (Stable Sort)

정렬되지 않은 상태에서, 같은 키를 가진 원소의 순서가 정렬 후에도 유지되는 정렬

  • Counting / Radix / Merge / Insertion / Bubble

※ Example

- 3 5(a) 1 4 5(b) 2

  • 정렬 후 → 1 2 3 4 5(a) 5(b)
  • 같은 키값의 원소의 순서가 유지

 

 

 

불안정 정렬 (Unstable Sort)

정렬되지 않은 상태에서, 같은 키를 가진 원소의 순서가 정렬 후에 유지되는 것을 보장할 수 없는 정렬

  • Heap / Shell / Quick / Selection 

※ Example

- 3 5(a) 1 4 5(b) 2

  • 정렬 후 → 1 2 3 4 5(b) 5(a)
  • 같은 키값의 원소의 순서가 유지되지 않는다