Quick Sort O(n log n) in TypeScript
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)