Quick Sort O(n log n) in TypeScript

TheTechnoCult
Oct 27, 2023

--

The best case is O(n log n), the worst is O(n^2)

function quickSort(arr: number[], lo: number, hi: number): void {
if (lo >= hi) {
return
}

const pivotInd = partition(arr, lo, hi)

quickSort(arr, lo, pivotInd - 1)
quickSort(arr, pivotInd + 1, hi)
}

function partition(arr: number[], lo: number, hi: number): number {
const pivot = arr[hi]

let ind = lo - 1

for (let i = lo; i < hi; ++i) {
if (arr[i] <= pivot) {
ind = ind + 1
const tmp = arr[i]
arr[i] = arr[ind]
arr[ind] = tmp
}
}

ind = ind + 1
arr[hi] = arr[ind]
arr[ind] = pivot

return ind
}

const arr = [11, 13, 5, 10, 1, 9, 6, 44, 25]
quickSort(arr, 0, arr.length - 1)
console.log(arr)

--

--

No responses yet