快排

2024-04-03  本文已影响0人  小丸子啦啦啦呀

/**

function sort(arr, left, right){
    const basePos = left;
    const base = arr[left];

    while (left<right){
        while (arr[left]<=base && left<right){
            left++;
        }

        while (arr[right]>base && left<right){
            right--;
        }

        swap(arr, left, right)
        console.log('round:', arr, left, right)
    }

    swap(arr, basePos, right);
    return right;
}

function quicksort(arr = [], left, right){
  if(left >= right) return arr;

  const middle = sort(arr, left, right);

  quicksort(arr, left, middle-1);
  quicksort(arr, middle+1, right);
}

function swap(arr, i, j){
    let temp = arr[i];
    arr[i] = arr[j];
    arr[j] = temp;
}

function main(){
    console.time();
    let arr = [6,1,2,7,3,9,8,4,5,10,2,1];

    quicksort(arr, 0, arr.length-1)
    console.log(arr);
    console.timeEnd();
}

main()
上一篇 下一篇

猜你喜欢

热点阅读