반응형
삽입 정렬
정렬 안된 부분의 가장 왼쪽 원소를 정렬된 부분의 적절한 위치에 '삽입' 하는 것이다.
어느 정도 정렬이 되있는 상태의 배열에서는 좋은 성능을 낼 수 있다. 하지만 만약 역으로 정렬된 경우라면 선택, 버블 정렬과 같은 성능이 나온다.
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
public class Insertion {
public static boolean isless(Comparable a, Comparable b) {
return a.compareTo(b) < 0;
}
public static void swap(Comparable[] arr, int i,int j) {
Comparable p = arr[i];
arr[i] = arr[j];
arr[j] = p;
}
public static void show(Comparable[] arr) {
for(int i=0; i<arr.length; i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
}
public static void Sort(Comparable[] arr) {
for(int i=1; i<arr.length; i++) {
for(int j=i; j>0; j--) {
if(isless(arr[j],arr[j-1])) {
swap(arr,j,j-1);
} else {
break;
}
}
show(arr);
}
}
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter
|
반응형
'알고리즘 > 기본 알고리즘' 카테고리의 다른 글
[Java][알고리즘][정렬] Quick Sort / 퀵 정렬 (0) | 2019.06.19 |
---|---|
[Java][알고리즘][정렬] Merge Sort / 합병 정렬 (0) | 2019.06.18 |
[Java][알고리즘][정렬] Bubble Sort / 버블 정렬 (0) | 2019.06.16 |
[Java][알고리즘][정렬] Selection Sort / 선택 정렬 (0) | 2019.06.04 |