-

[Sort] Stable / Unstable 정렬 본문

알고리즘 Note

[Sort] Stable / Unstable 정렬

Boogallee 2020. 3. 2. 22:20

Stable/Unstable 정렬

--> 비교 대상의 Key가 여러개 값을 가질때 혹은 같은 값을 가지는 데이터가 여러개 있을 때, 정렬후에 기존의 순서를 유지하는지에 따라 Stable과 Unstable로 나뉜다. 비교 Key가 한 개일때는 나누는 것이 굳이 의미 없지만 여러개일 경우(구조체 함수 데이터) 특정한 데이터를 기준으로 Sorting할 경우 Stable/Unstable 정렬의 종류를 고려하여 적용해야 한다.

 

예를들어 

 

Dave A

Alice B

Ken A

Eric B

Carol A

 

위와 같은 데이터를 정렬하려면 두 가지를 기준으로 정렬할 수 있다. 여기서 중복되는 데이터가 있는데 정렬 전 원래의 순서를 기억할것이냐 말것이냐에 따라 Stable과 Unstable 알고리즘을 선택해야 한다.

 

Stable Sort

  • Bubble Sort
  • Insertion Sort
  • Merge Sort
  • Counting Sort
  • Bucket Sort
  • Radix Sort 

Unstable Sort

  • Selection Sort
  • Shell Sort
  • Heap Sort
  • Quick Sort

'알고리즘 Note' 카테고리의 다른 글

[Sort]Insertion Sort  (1) 2020.03.02
[Sort] Selection Sort  (1) 2020.03.02
[Sort] Bubble Sort  (0) 2020.03.02
C/C++ 배열 사이즈 관련  (0) 2018.01.10
[C언어-문자열관련]  (0) 2018.01.08
Comments