1function quickSort(arr, lo = 0, hi = arr.length - 1) {
2 if (lo < hi) {
3 const p = partition(arr, lo, hi);
4 quickSort(arr, lo, p - 1);
5 quickSort(arr, p + 1, hi);
6 }
7 return arr;
8}
9function partition(arr, lo, hi) {
10 const pivot = arr[hi];
11 let i = lo - 1;
12 for (let j = lo; j < hi; j++) {
13 if (arr[j] < pivot) {
14 i++;
15 [arr[i], arr[j]] = [arr[j], arr[i]];
16 }
17 }
18 [arr[i + 1], arr[hi]] = [arr[hi], arr[i + 1]];
19 return i + 1;
20}