반응형
-
자료 배열의 모든 원소들을 앞에서부터 차례대로 이미 정렬된 부분과 비교하여, 자신의 위치를 찾아내서 정렬하는 방식
-
정렬 과정 -정렬할 자료를 두 개의 부분집합 S,U로 가정
- 부분집합 S : 정렬된 앞 부분의 원소들
- 부분집합 U : 아직 정렬되지 않은 나머지 원소들
-
정렬되지 않은 부분집합 U의 원소를 하나씩 꺼내서 이미 정렬되어있는 부분집합 S의 마지막 원소부터 비교하면서 위치를 찾아 삽입한다.
-
삽입정렬을 반복하면서 부분집합 S의 원소는 하나씩 늘리고 부분집합 U의 원소는 하나씩 감소하게 한다. 부분집합 U가 공집합이 되면 삽입정렬이 완성된다.
-
시간복잡도 O(n²)
구현코드
package array2;
import java.util.Arrays;
public class InsertionSort {
public static void main(String[] args) {
int[] a = {69,10,30,2,16,8,31,22};
System.out.println(Arrays.toString(a));
for (int i = 1; i < a.length; i++) {
int k = i;
for (int j = 1-1; j >= 0; j--) {
if(a[j] > a[k]) {
int T = a[j]; a[j] = a[k]; a[k] = T;
k=j;
}
}
System.out.println(Arrays.toString(a));
}
}
}
반응형
'1. 알고리즘 이론 > 3. 정렬' 카테고리의 다른 글
퀵정렬(QuickSort) (0) | 2020.03.01 |
---|---|
카운팅정렬(CountingSort) (0) | 2020.03.01 |
선택정렬(SelectionSort) (0) | 2020.03.01 |
버블정렬(BubbleSort) (0) | 2020.03.01 |
정렬 (0) | 2020.03.01 |