선택정렬 (selection sort)
제자리정렬 알고리즘, 불안전 정렬, 내부정렬
1. 리스트중 최솟값을 찾음.
2. 그 값을 맨 앞의 값과 교체.
3. 맨처음 위치 다음부터 같은 방법으로 계속 교체.
초기 - [ 9, 1, 6, 8, 4, 3, 2, 0 ] 최솟값 : 0
1 - [ 0, 1, 6, 8, 4, 3, 2, 9 ] 최솟값 : 1
2 - [ 0, 1, 6, 8, 4, 3, 2, 9 ] 최솟값 : 2
3 - [ 0, 1, 2, 8, 4, 3, 6, 9 ] 최솟값 : 3
4 - [ 0, 1, 2, 3, 4, 8, 6, 9 ] 최솟값 : 4
5 - [ 0, 1, 2, 3, 4, 8, 6, 9 ] 최솟값 : 6
6 - [ 0, 1, 2, 3, 4, 6, 8, 9 ] 최솟값 : 8
void selectionSort(int[] list) {
int indexMin, temp;
for (int i = 0; i < list.length - 1; i++) {
indexMin = i;
for (int j = i + 1; j < list.length; j++) {
if (list[j] < list[indexMin]) {
indexMin = j;
}
}
temp = list[indexMin];
list[indexMin] = list[i];
list[i] = temp;
}
}
참고.
위키백과.
이미지 : springmvc.egloos.com
'JAVA > 정렬' 카테고리의 다른 글
정렬 알고리즘 - 삽입정렬(insertion sort) (0) | 2016.05.31 |
---|---|
정렬 알고리즘 - 버블정렬(bubble sort) (0) | 2016.05.31 |
댓글