정렬 알고리즘은 순서가 없던 데이터를 순서대로 바꾸어 나열하는 알고리즘입니다. 정렬을 하는 방법은 여러가지가 있는데, 그 중에 유명한 알고리즘은 아래 4가지가 있습니다.
정렬을 해야하는 배열은 [7,5,4,2] 입니다.
첫 번째 loop에서는 index 0부터 3까지 확인하며 가장 작은 수를 찾습니다. 2 이므로 index 0의 7과 교체합니다. -> [2,5,4,7]
두 번째는 index 1부터 3까지 확인하며 가장 작은 수를 찾습니다. 4이므로 index 1의 5와 교체합니다 -> [2,4,5,7]
세 번째는 index 2부터 3까지.. 이런식으로 가장 작은 수를 선택해서 순서대로 교체하는 것을 선택정렬이라고 합니다.
nums라는 정렬되지 않은 숫자 배열을 주면, 오름차순(1,2,3..10) 으로 정렬된 배열을 return해주세요.
const selectionSort = (nums) => {
for(let i = 0; i < nums.length-1; i++){
let lessIndex = i
for(let k=i+1; k < nums.length; k++){
if(nums[lessIndex] > nums[k])
lessIndex = k
}
if(lessIndex > i){
const changeNum = nums[i]
nums.splice(i, 1, nums[lessIndex])
nums.splice(lessIndex, 1, changeNum)
}
}
return nums
}
console.log(selectionSort([7,5,4,2]))
이중 반복문을 사용하여 배열의 index0과 1부터 값을 비교. 앞의 값이 더 클경우 splice를 사용하여
두 수의 자리를 바꾸는 방식으로 풀이하였다.