1. 程式人生 > >javascript 快速排序方法

javascript 快速排序方法

快速 turn fun 下一個 子集 ret else 數組 遞歸

"快速排序"的思想很簡單,整個排序過程只需要三步:

(1)在數據集之中,選擇一個元素作為"基準"(pivot)。

(2)所有小於"基準"的元素,都移到"基準"的左邊;所有大於"基準"的元素,都移到"基準"的右邊。

(3)對"基準"左邊和右邊的兩個子集,不斷重復第一步和第二步,直到所有子集只剩下一個元素為止。

var function quickSort(arr){

  if(arr.length<=0){

    return arr;

  }

    var pivotIndex = Math.floor(arr.length / 2) ;

   var pivot = arr.splice(pivotIndex, 1)[0];

   var left = [];

   var right = [];

  for (var i = 0; i < arr.length; i++){

    if (arr[i] < pivot) {

      left.push(arr[i]);

    } else {

      right.push(arr[i]);

    }

  }

  return quickSort(left).concat([pivot], quickSort(right));//使用遞歸不斷重復這個過程,就可以得到排序後的數組。

}

 

javascript 快速排序方法