제자리 정렬 알고리즘의 하나로, 최소값을 찾아 맨 앞으로 보내고, 그당음으로 작은 값을 찾아 2번째 위치로 보내는 식으로 정렬한다.
중첩 루프문이 있어서 2차 복잡도를 가지므로 복잡도는 O(n²)이다.
const swap = (index1,index2,arr) => {
let aux = arr[index1];
arr[index1] = arr[index2];
arr[index2] = aux
}
const selectSort = (arr) => {
let length = arr.length;
let indexMin;
for(let i = 0; i < length-1; i++){
indexMin = i;
for(let j = i; j < length; j++){
if(arr[j] > arr[j+1]){
indexMin = j;
}
}
if(i !== indexMin){
swap(i, indexMin);
}
}
}