Skip to content

Instantly share code, notes, and snippets.

@Radcliffe
Created June 15, 2016 14:07
Show Gist options
  • Save Radcliffe/c40343f8663358cda51f818f679c4faf to your computer and use it in GitHub Desktop.
Save Radcliffe/c40343f8663358cda51f818f679c4faf to your computer and use it in GitHub Desktop.
Quicksort in JavaScript
function partition(arr, lo, hi) {
var swap = function (i, j) {
var tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
var pivot = arr[hi];
var pivotLoc = lo;
var i;
for (i=lo; i<hi; i++) {
if (arr[i] <= pivot) {
swap(i, pivotLoc);
pivotLoc++;
}
}
swap(pivotLoc, hi);
return pivotLoc;
}
function quicksort(arr) {
var qsort = function (lo, hi) {
var pivotLoc;
if (lo < hi) {
pivotLoc = partition(arr, lo, hi);
qsort(lo, pivotLoc-1);
qsort(pivotLoc+1, hi);
}
}
qsort(0, arr.length-1);
return arr;
}
var arr = [69, 28, 23, 8, 85, 78, 36, 7, 51, 43];
quicksort(arr);
console.log(arr);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment