我似乎无法使我的排序算法起作用。分区工作得很好,但我不能让递归部分工作。我知道问题是我的条件值开始递归不能正常工作,但我无法弄清楚我会把它放在哪里。
var partition = function(arr, i_lo, i_hi) {
var pivot = arr[i_hi];
var i = i_lo
for (var j = i_lo; j < i_hi; j++) {
if (arr[j] <= pivot) {
var swap = arr[i];
arr[i] = arr[j];
arr[j] = swap;
i++
}
}
var swap = arr[i];
arr[i] = arr[i_hi]
arr[i_hi] = swap;
return i;
}
//1 3 9 8 2 7 5
var quickSort = function(arr, i_lo, i_hi) {
console.log(arr[i_lo], arr[i_hi])
if (arr[i_lo] < arr[i_hi]) {
var p = partition(arr, i_lo, i_hi);
arr = quickSort(arr, i_lo, p-1);
arr = quickSort(arr, p + 1, i_hi);
console.log(arr);
}
return arr;
}
console.log(quickSort(arr, 0, arr.length-1))