문제 52 : quick sort
less than 1 minute read
문제 52 : quick sort
// 빈칸을 채워서 퀵 정렬을 완성하라.
function quickSort(arr){
if (arr.length <= 1){
return arr;
}
const pivot = arr[0];
const left = [];
const right = [];
for (let i=1; i<arr.length; i++){
if(/*빈칸을 채워주세요*/){
left.push(arr[i]);
} else {
right.push(arr[i]);
}
}
return /*빈칸을 채워주세요*/
}
const array = prompt('배열을 입력하세요').split(' ').map(n => parseInt(n, 10));
console.log(quickSort(array));
풀이 1
function quickSort(arr) {
if (arr.length <= 1) {
return arr;
}
const pivot = arr[0];
const left = [];
const right = [];
for (let i = 1; i < arr.length; i++) {
if (arr[i] < pivot) {
left.push(arr[i]);
} else {
right.push(arr[i]);
}
}
// pivot은 기준이 되는 값으로 pivot보다 작은 값은 left 배열
// 큰 값은 right 배열에 담겼으므로 pivot이 가운데로 와야함
return quickSort(left).concat(pivot, quickSort(right));
}
const array = prompt("배열을 입력하세요")
.split(" ")
.map((n) => parseInt(n, 10));
console.log(quickSort(array));
Leave a comment