선택정렬(SelectionSort)
선택정렬을 배열을 한바퀴 돌아서 최소/최대 값을 찾은 후(선택) 스왑을 통해 오름/내림차순으로 정렬한다.
선택정렬 - 오름차순
// 오름차순 정렬
public static void selectionSort_asc(int[] array) {
int min;
for(int i=0; i < array.length-1 ; i++) {
min = i;
for(int j=i+1; j < array.length; j++) {
if(array[j] < array[min]) {
min = j;
}
}
int tmp = array[i];
array[i] = array[min];
array[min] = tmp;
}
}
선택정렬 - 내림차순
// 내림차순 정렬
public static void selectionSort_desc(int[] array) {
int max;
for(int i=0; i < array.length-1 ; i++) {
max = i;
for(int j=i+1; j < array.length; j++) {
if(array[j] > array[max]) {
max = j;
}
}
int tmp = array[i];
array[i] = array[max];
array[max] = tmp;
}
}
선택정렬 - 시간복잡도
참조 링크
https://gmlwjd9405.github.io/2018/05/06/algorithm-selection-sort.html
'Java > AlgoritmStudy' 카테고리의 다른 글
병합 정렬(Merge Sort) (0) | 2019.08.14 |
---|
댓글