const quickSort = function (arr) {
// pivot 하나를 정하여 pivot이 든 배열로 만들어둔다. 여기선 arr[0]로 정하겠다.
// 재귀적 호출의 종료조건을 위해 배열의 길이가 2보다 작으면 함수를 종료한다.
// arr 안에 pivot보다 작은 수들의 배열을 만들고 pivot의 왼쪽에 배치한다.
// arr 안에 pivot보다 큰 수들의 배열을 pivot의 오른쪽에 배치
// 위 작업을 재귀적으로 호출해서 마지막 리턴을 왼쪽 pivot 오른쪽 순으로 합쳐준다.
let pivot = arr[0];
let left = [];
let right = [];
if(arr.length < 2) return arr;
for(let i=1; i<arr.length; i++){
if(arr[i] <= pivot) left.push(arr[i]);
else right.push(arr[i]);
}
const leftSorted = quickSort(left);
const rightSorted = quickSort(right);
return [...leftSorted, pivot, ...rightSorted];
};