js 实现原地快排

209 阅读1分钟
function quickSort(arr, begin, end) {
      if (begin < end) {
        let i = begin;
        let j = end;
        let pivot = arr[begin];
        while (i < j) {
          while (arr[j] >=pivot && i < j) {
            j--;
          }
          arr[i] = arr[j];
          while (arr[i] <=pivot && i < j) {
            i++;
          }
          arr[j] = arr[i];
        }
        arr[i] = pivot;
        quickSort(arr, begin, i - 1);
        quickSort(arr, i + 1, end);
      } else {
        return;
      }
    }
    let arr = [1, 2, 5, 1, 9, 0, 1, 7, 9];
    quickSort(arr, 0, 8);
   alert(arr);