https://github.com/cuttingworms/Data-Structures-with-Python
- 삽입 정렬 (Insertion Sort)
- 리스트가 정렬된 부분과 정렬되지 않은 부분으로 나뉘며, 정렬되지 않은 부분의 가장 왼쪽 원소를 정렬된 부분에 삽입하는 방식의 정렬 알고리즘
- 리스트의 첫번째 원소를 현재 원소로 지정하여 정렬을 시작하고, 리스트의 마지막 원소를 이미 정렬되어 있는 앞부분에 삽입했을 때 정렬을 마침
- 수행 시간
- 입력에 민감한(Input sensitive) 알고리즘으로, 입력이 거의 정렬되어 있을 때 정렬이 매우 빠르고, 입력이 역으로 정렬되어 있을 때가 최악 경우로서 매우 느림
- 입력이 정렬되어 있을 경우 n - 1회 비교하면 정렬을 마치지만, 최악 경우에는 선택 정렬과 같은 O(n^2) 소요
- 입력 데이터의 순서가 무작위인 경우, 삽입 정렬의 평균 수행 시간 또한 O(n^2)
- 실제 응용에서는 이미 정렬된 파일 뒷부분에 소량의 신규 데이터를 업데이트 하는 경우에 활용, 재귀호출을 하지 않으며 프로그램이 간단하여 우수한 성능을 보임
'자료구조 (Data Structures) > 정렬, Sorting' 카테고리의 다른 글
[Sorting] 퀵 정렬, Quick Sort (0) | 2022.01.13 |
---|---|
[Sorting] 합병 정렬, Merge Sort (0) | 2022.01.13 |
[Sorting] 힙 정렬, Heap Sort (0) | 2022.01.12 |
[Sorting] 쉘 정렬, Shell Sort (0) | 2022.01.12 |
[Sorting] 선택 정렬, Selection Sort (0) | 2022.01.12 |