| 정렬 알고리즘 | 정의 |
|---|---|
| 버블(bubble) | 데이터의 인접 요소끼리 비교하고, swap 연산을 수행하며 정렬하는 방식 |
| 선택(selection) | 대상에서 가장 크거나 작은 데이터를 찾아가 선택을 반복하면서 정렬하는 방식 |
| 삽입(insertion) | 대상을 선택해 정렬된 영역에서 선택 데이터의 적절한 위치를 찾아 삽입하면서 정렬하는 방식 |
| 퀵(quick) | pivot 값을 선정해 해당 값을 기준으로 정렬하는 방식 |
| 병합(merge) | 이미 정렬된 부분 집합들을 효율적으로 병합해 전체를 정렬하는 방식 |
| 기수(radix) | 데이터의 자릿수를 바탕으로 비교해 데이터를 정렬하는 방식 |
삽입 정렬 알고리즘 또한 버블 정렬과 같은 높은 시간 복잡도(O(n^2))를 가지고 있고 구현하기도 쉬운 편이다
삽입 정렬 알고리즘의 정렬 과정은 아래와 같다.
- 현재 인덱스에 있는 데이터 값을 선택
- 현재 선택한 데이터가 정렬된 데이터 범위에 삽입될 위치를 탐색
- 삽입 위치부터 인덱스에 있는 위치까지 shift 연산을 수행한다
- 삽입 위치에 현재 선택한 데이터를 삽입하고 index++ 연산을 수행한다.
- 전체 데이터의 크기만큼 index가 커질 때까지, 즉 선택할 데이터가 없을 때까지 반복한다.
