Selection Sort
삽입정렬은 UnStable한 정렬로 0번째 인덱스부터 시작해 N번째 인덱스까지 순회하며 최소값을 찾아 스왑한다
O(N^2)의 시간복잡도와 O(1)의 공간 복잡도를 가지게 되며 코드가 단순해 구현이 간단하다
동작 원리
오름차순 정렬 기준
- 0번째 인덱스를 기준으로 삼는다
- 1번째 인덱스부터 N번째 인덱스까지 순회하며 최소값을 탐색한다
- 탐색한 최소값이 0번째 인덱스보다 작다면 스왑한다
- 탐색한 최소값이 0번째 인덱스보다 작지 않다면 스왑하지 않는다
- 다시 1번으로 돌아가 N-1번째 인덱스까지 반복한다
UnStable Sort 예시
배열 : 5[1], 4, 5[2], 3, 2
1회 반복 : 2, 4, 5[2], 3, 5[1]
2회 반복 : 2, 3, 5[2], 4, 5[1]
3회 반복 : 2, 3, 4, 5[2], 5[1]
4회 반복 : 2, 3, 4, 5[2], 5[1]
구현
c++
1 |
|