演算法之快速排序

2022-03-15 01:46:50 字數 787 閱讀 9929

演算法之快速排序

解決問題:

將乙個無序的陣列從小到大排列

演算法原理:

1.先在陣列中選擇乙個基數

2.將除基數外的陣列分為兩個陣列,比基數小的分為乙個陣列,比基數大的分為乙個陣列

3.將分好的兩個陣列重複1,2兩步,遞迴得到排好順序的陣列

**:

var quicksort = function(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++) else

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

console.log(quicksort([23,11,89,45,67,76,56,99]))

注釋:

math.floor()     //向下取整

arr.splice(pivotindex, 1)        //從陣列第pivotindex個數開始,取1個數返回

concat()        //連線兩個或多個陣列

參考:

演算法 排序演算法之快速排序

很受打擊啊啊啊啊啊!這道排序題我很久之前就做過,而且當時沒用20分鐘就搞定了,可是,今天在公司做完手上的活之後打算刷題時,又心血來潮的想重做一遍,心想反正也花不了多少時間,結果。血崩了。要求 對於乙個int陣列,請編寫乙個快速排序演算法,對陣列元素排序。給定乙個int陣列a及陣列的大小n,請返回排序...

演算法 排序演算法之快速排序

快速排序是由東尼 霍爾所發展的一種排序演算法。在平均狀況下,排序 n 個專案要 nlogn 次比較。在最壞狀況下則需要 n2 次比較,但這種狀況並不常見。事實上,快速排序通常明顯比其他 nlogn 演算法更快,因為它的內部迴圈 inner loop 可以在大部分的架構上很有效率地被實現出來。快速排序...

排序演算法之快速排序

快速排序使用分治法 divide and conquer 策略來把乙個序列 list 分為兩個子串行 sub lists 步驟為 從數列中挑出乙個元素,稱為 基準 pivot 重新排序數列,所有元素比基準值小的擺放在基準前面,所有元素比基準值大的擺在基準的後面 相同的數可以到任一邊 在這個分割槽退出...