Muscardinus
병합정렬 본문
728x90
const numbers = [99, 44, 6, 2, 1, 5, 63, 87, 283, 4, 0];
function mergeSort (array) {
if (array.length === 1) {
return array
}
const middle = Math.floor(array.length / 2);
const left = array.slice(0,middle);
const right = array.slice(middle);
return merge(
mergeSort(left),
mergeSort(right)
)
}
function merge(left, right){
let retArr = [];
let i = 0; // left Index
let j = 0; // right Index
while(i < left.length && j < right.length) {
if (left[i] < right[j]) {
retArr.push(left[i]);
i++;
} else {
retArr.push(right[j]);
j++;
}
}
return retArr.concat(left.slice(i)).concat(right.slice(j));
}
const answer = mergeSort(numbers);
console.log(answer);
728x90
Comments