선택정렬
- 주어진 리스트에서 최소값을 찾는다.
- 최소 값을 찾아서 대상과 교환을 한다.
- arr.length - 1 만큼 반복한다. 마지막은 할 필요가 없기 때문에
예를 들어보자
min = 6
6
2
7 8 1
- min과 2를 비교해서 더 작은 값을 min에다 넣는다. min=2
- 7과 8 도 비교를한다. 2가 더 작기 때문에 min은 그대로 2다.
- min과 1을 비교한다. 1이 더 작기때문에 min 1을 넣는다.
- 6과 1을교환 한다.
- 이를 반복한다.
소스를 보자!
private static void selectionSort(int arr[]) {
for (int i = 0; i < arr.length - 1; i++) {
int min = i;
for (int j = i + 1; j < arr.length; j++) {
if (arr[j] < arr[min]) { //min이 클경우 대상이 작기 때문에 대상을 min에다 넣는다.
min = j;
}
}
int temp = arr[i];
arr[i] = arr[min];
arr[min] = temp;
}
}