js的 快速排序 演算法

2021-09-11 02:09:14 字數 956 閱讀 6907

快速排序的原理:

選擇陣列中的隨便乙個元素作為基準

遍歷陣列,將大於它的元素放在右邊,小於他的元素放在左邊。

然後對左右兩邊的陣列繼續執行如上操作,如此遞迴直到左右兩邊的陣列為1。

js簡單實現**

var quicksort = function (arr) 

var pivotindex = math.floor(newarr.length / 2);

var pivot = newarr.splice(pivotindex, 1)[0];

var left = ;

var right = ;

for (var i = 0; i < newarr.length; i++) else

}return quicksort(left).concat([pivot], quicksort(right));

}console.log(quicksort(arr))

console.log(arr)

/直接繫結到array

array.prototype.quicksort = function()

var pivotindex = math.floor(newarr.length / 2);

var pivot = newarr.splice(pivotindex, 1)[0];

var left = ;

var right = ;

for (var i = 0; i < newarr.length; i++) else

}return left.quicksort().concat([pivot], right.quicksort());

}console.log(arr.quicksort())

console.log(arr)

js快速排序演算法

演算法 1 先從數列中取出乙個數作為基準數。2 分割槽過程,將比這個數大的數全放到它的右邊,小於或等於它的數全放到它的左邊。3 再對左右區間重複第二步,直到各區間只有乙個數。動畫演示 點我檢視效果 實現 function quicksort array hight 從左往右找,直到找到乙個大於基準的...

JS排序演算法之快速排序

快速排序和歸併排序都是採用二分法的排序演算法。都是 olog n 不過快速排序更複雜一些。快遞排序跟歸併排序的區別是順序,它是先總後分。不斷地從斷點分,讓左邊的數都小於斷點,右邊都大於斷點。然後迭代切分。1 var group 1,9,3,5,0,4,2,8 23 function swap k,y...

js實現快速排序演算法

假設有這麼乙個陣列 let ary 12 8,15 16,1 24 找到中間項15 把它從原來陣列中移除 獲取這一項的結果 讓拿出來的每一項和中間項繼續比較 並建立兩個陣列 左邊陣列和右邊陣列 比中間項小的放到左邊 比他大的放到右邊 左邊陣列 12,8,1 右邊陣列 16,24 重複上面的操作 再分...