-
자바스크립트로 퀵 정렬 구현하기2018~2019/알고리즘 2018. 12. 31. 01:17
1. pivot값이 처음 값인 경우
let arr = [1,4,5,2,3,6];
function Quick(arr) {
const len = arr.length;
if(len == 0)
return [];
let left = [];
let right = [];
const pivot = arr[0];
for(let i=1; i<len; i++) {
if(arr[i] < pivot)
left.push(arr[i]);
else
right.push(arr[i]);
}
return Quick(left).concat(pivot, Quick(right));
}
console.log(Quick(arr));
2. pivot값이 중간 값인 경우
let arr = [1,4,5,2,3,6];
function Quick(arr) {
const len = arr.length;
if(len == 0)
return [];
let left = [];
let right = [];
const tmp = arr[0];
arr[0] = arr[parseInt(len/2)];
arr[parseInt(len/2)] = tmp;
const pivot = arr[0];
for(let i=1; i<len; i++) {
if(arr[i] < pivot)
left.push(arr[i]);
else
right.push(arr[i]);
}
return Quick(left).concat(pivot, Quick(right));
}
console.log(Quick(arr));
'2018~2019 > 알고리즘' 카테고리의 다른 글
에라토스테네스의 체 (0) 2018.09.28