-
삽입정렬 (Insertion Sort)
- i번째 데이터를 이전의 원소부터 0번째까지의 데이터들과 비교하여 자리를 교환하는 정렬방식.
- 예) [1, 3, 5, 2, 4] 배열에서 원소 "2"는 이전의 원소 "5"보다 작으므로 자리교환 -> [1, 3, 2, 5, 4], 그 이전의 원소 "3" 보다 작으므로 자리교환 -> [1, 2, 3, 5, 4]
- 구현
public static void main(String[] args) { int[] array = {2, 4, 1, 5, 3}; int length = array.length; for (int i = 1; i < length; i++) { int target = array[i]; int j = i - 1; while (j >= 0 && target < array[j]) { array[j + 1] = array[j]; j--; } array[j + 1] = target; } }
- 시간복잡도 O(N^2)
'CS > 알고리즘' 카테고리의 다른 글
[Greedy] 그리디 알고리즘(탐욕법) (0) 2021.09.13 [BFS/DFS] 너비우선탐색과 깊이우선탐색 (0) 2021.08.31 [정렬] 퀵정렬 (0) 2021.08.28 [정렬] 선택정렬 (0) 2021.08.28 [정렬] 버블정렬 (0) 2021.08.28