주어진 배열 외에 다른 배열을 생성하지 않고,
선택정렬 알고리즘을 구현하여
배열 내 원소를 오름차순으로 정렬해본다.
Input | Output |
---|---|
[13, 5, 11, 7, 23, 15] | [ 5, 7, 11, 13, 15, 23 ] |
pointer
변수를 만들어서, 이미 값이 교체되었던 원소를 최소값 산출에서 무시하게끔 처리했다. const solution = (nums) => {
let pointer = 0;
while (pointer < nums.length) {
const minIdx = getMinIdx(nums, pointer);
[nums[pointer], nums[minIdx]] = [nums[minIdx], nums[pointer]];
pointer++;
}
return nums;
};
const getMinIdx = (arr, pointer) => {
let minIndex;
arr.reduce((min, num, i) => {
if (min > num && i >= pointer) {
minIndex = i;
return (min = num);
} else return min;
}, Infinity);
return minIndex;
};