Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | 1x 1x 1x 1x 11245x 11245x 11245x 1905x 1905x 5621x 5621x 5621x 5621x 5621x 5621x 11245x 165201x 165201x 76394x 76394x 165201x 83186x 83186x 165201x 5621x 5621x 5621x 1x 1x | // quicksort idea // Pick a pivot // then move all items less than pivot to left const quickSort = (arr: number[]): number[] => { // base case if (!arr.length || arr.length === 1) return arr; if (arr.length == 2) { return [Math.min(...arr), Math.max(...arr)]; } // recursion case const pivot = Math.floor(arr.length / 2); const greater = []; const less = []; for (let x = 0; x < arr.length; x++) { const item = arr[x]; if (item >= arr[pivot] && x !== pivot) { greater.push(item); } if (item < arr[pivot] && x !== pivot) { less.push(item); } } return [...quickSort(less), arr[pivot], ...quickSort(greater)]; }; export default quickSort; |