
정수를 요소로 갖는 배열을 입력받아 오름차순으로 정렬하여 리턴해야 합니다.
let output = quickSort([3, 1, 21]);
console.log(output); // --> [1, 3, 21]
function quickSort(arr, transform = (item) => item) {
if (arr.length <= 1) return arr;
const pivot = arr[0];
const left = [];
const right = [];
for (let i = 1; i < arr.length; i++) {
if (transform(arr[i]) < transform(pivot)) left.push(arr[i]);
else right.push(arr[i]);
}
const lSorted = quickSort(left, transform);
const rSorted = quickSort(right, transform);
return [...lSorted, pivot, ...rSorted];
}
퀵정렬은 기준점(피봇)을 잡고 왼쪽은 작은수 오른쪽은 큰수를 위치해주면서 정렬하는 정렬함수이다.
아직 알고리즘을 코딩으로 표현하기에는 많이 어려움이 있는거 같다.. 알고리즘 동작 방식만이라도 이해하고 넘어가도록 노력해야겠다.