Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |
Tags
- 약참조
- 델리게이트
- 알고리즘
- dataasset
- 언리얼가비지컬렉터
- 데이터애셋
- stl
- 자료구조
- enumasByue
- UML관련
- 선택정렬
- UE_LOG
- 람다사용정렬
- 정렬알고리즘
- map
- 크리티컬섹션
- 프로그래머스
- 언리얼엔진구조체
- 람다
- unorder_map
- C++최적화
- UE4 커스텀로그
- 애셋로드
- 강참조
- BFS
- 스마트포인터
- 정렬
- C++
- UELOG
- moreeffectiveC++
Archives
- Today
- Total
기억을 위한 기록들
[알고리즘] stable sort 와 unstable sort 본문
초안 : 2021년 9월 22일
1차 수정 : 2023년 4월 10일
기존 Sort(정렬) 알고리즘들이 여러 가지가 있다. 그중에서도 크게 2가지로 나눌 수가 있는데, 바로
Stable Sort와 UnStable Sort로 나눈다.
우선 Stable와 UnStable의 사전적 의미로는 아래와 같다.
정렬 알고리즘의 stability란, 동일한 키(key) 값을 가진 원소(element)들이 정렬 후에도 서로의 상대적인 위치가 유지되는 성질을 말합니다. 따라서 stable 한 정렬 알고리즘은 같은 값을 가진 원소들의 순서가 보존되어야 하는 경우에 유용합니다.
안정적인(stable) 정렬과 불안정한(UnStable) 정렬로 해석이 되는데, 먼저 안정적인 정렬은 나열된 수를 정렬한 뒤에도 기존에 있던 순서를 유지하는것이 Stable Sort이고, 정렬한 다음에 기존 순서를 유지하지 않는다면 UnStable Sort이다.
대표적인 Stable Sort로
- Insertion Sort (삽입 정렬)
- Bubble Sort (버블 정렬)
- Merge Sort (병합 정렬)
- Heap Sort (힙 정렬)
- Quick Sort (퀵 정렬)
- Selection Sort (선택 정렬) ->
이 있다.
그리고 UnStable Sort로는
- Counting Sort (계수 정렬)
- Radix Sort (기수 정렬)
- Bucket Sort (버킷 정렬)
들이 있다. 하지만 어떤 정렬 알고리즘은 구현방식에 따라 UnStable <-> Stable 해질 수 있다는 점이 있다.
실질적으로 내가 적용하는 알고리즘을 볼 때,Stable해지는지 UnStable 해지는지 잘 구분해야 할 것 같다.
위의 정렬알고리즘들 중 일부를 정리한 글이다.
https://hyo-ue4study.tistory.com/68
'자 & 알 > 알고리즘' 카테고리의 다른 글
[알고리즘] 탐욕/그리디 알고리즘(Greedy Algorithms) (0) | 2023.04.23 |
---|---|
[알고리즘 ] 동적 계획 법 (Dynamic Programming/DP) (0) | 2023.04.18 |
[알고리즘]정렬 알고리즘의 선택과 종류 7가지 (3) | 2023.04.03 |
[알고리즘] 길찾기 알고리즘(A* Algorithm) 구현(C++/UE4) (1) | 2021.04.08 |
[알고리즘] [다익스트라 알고리즘]과 [A* 알고리즘] 그리고 [플로이드와샬 알고리즘] (0) | 2021.03.30 |