CS/알고리즘
[정렬] 삽입정렬
지잉지잉
2021. 8. 28. 16:46
삽입정렬 (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)