가장 작은 요소부터 선택해 알맞은 위치로 옮겨서 정렬
static int[] numbers = {3,4,2,0,1};
static void swap(int a, int b){
int temp = numbers[a];
numbers[a] = numbers[b];
numbers[b] = numbers[a];
}
static void selectionSort(){
for(int i = 0; i < numbers.length - 1; i++){
int min = i; // min : 아직 정렬되지 않은 부분의 가장 작은 요소 인덱스
for(int j = i + 1; j < numbers.length; j++)
if(numbers[min] > numbers[j])
min = j;
swap(i, min); // 아직 정렬되지 않은 부분의 첫 요소와 가장 작은 부분을 바꾼다.
}
}
시간 복잡도: O(n^2)
하지만 배열의 요소 값이 중복인 경우 중복인 요소의 순서가 바뀔 수 있기에 안정적이지 않다.
