① 전체 배열에서 가장 작은 숫자를 찾는다.
② 이 숫자가 index 0
이 아니라면 해당 자리에 위치한 숫자와 자리를 서로 바꿔준다.
③ 이번에는 index 1
부터 끝까지 중에서 가장 작은 숫자를 찾는다.
④ 마찬가지로 이 숫자가 index 1
이 아니라면 해당 자리의 숫자와 자리를 바꿔준다.
⑤ 이렇게 배열의 끝까지 가장 작은 수를 선택해 자리를 교체해준다.
[7, 5, 4, 2] //index 0~3
중 가장 작은 숫자: 2
-> [2, 5, 4, 7] //index 1~3
중 가장 작은 숫자: 4
-> [2, 4, 5, 7] //더 없음.
const selectionSort = (nums) => {
for(let i = 0; i < nums.length; i++) {
let min = Math.min(...nums.slice(i));
let minIndex = nums.indexOf(min);
if(minIndex !== i) {
nums[minIndex] = nums[i];
nums[i] = min;
}
}
return nums;
}