Skip to content

Instantly share code, notes, and snippets.

@matthieu-D
Created July 21, 2017 12:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save matthieu-D/56412d884e9b1ac10896307a6fb2e1ca to your computer and use it in GitHub Desktop.
Save matthieu-D/56412d884e9b1ac10896307a6fb2e1ca to your computer and use it in GitHub Desktop.
self.swap = function(arr, i, j) {
var temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
self.partition = function (arr, pivot, left, right){
var pivotValue = arr[pivot],
partitionIndex = left;
for(var i = left; i < right; i++){
if(arr[i] < pivotValue){
swap(arr, i, partitionIndex);
partitionIndex++;
}
}
swap(arr, right, partitionIndex);
return partitionIndex;
}
self.quickSort = (arr, left, right) => {
var len = arr.length,
pivot,
partitionIndex;
if(left < right){
pivot = right;
partitionIndex = partition(arr, pivot, left, right);
//sort left and right
quickSort(arr, left, partitionIndex - 1);
quickSort(arr, partitionIndex + 1, right);
}
return arr;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment