js快速排序正確的寫法

2021-09-13 20:15:48 字數 513 閱讀 9441

前端小白一枚,學習js的時間不長,這裡想說一說關於快速排序法的**的正確寫法,網上有很多,我只能說有些事不夠準確的,沒有考慮到陣列裡面重複出現元素的情況,請看看正確的**顯示

// 快速排序法

function quicksort(array)

var left=;

var right=;

var middleindex=parseint(array.length/2);

var middle=array.splice([middleindex],1)[0];

for(var i=0; i=middle)

}return quicksort(left).concat(middle,quicksort(left));

}var a=[1,2,5,1,4,2,55,12,22];

quicksort(a);

console.log(a)

這裡的關鍵是 splice方法返回並刪除陣列中的元素 ,這個是重點

快速排序的寫法

面試中乙個頻率極高的問題就是要手寫快速排序,實際上涉及下標變換的 極其容易寫錯,基本上涉及整數下標操作的問題都算是難度中等偏上的了。對於一些經典問題,我們要時不時的去練習,這裡給出演算法導論上的和stl中實現的快速排序的兩種不同寫法。template size t partition t a,siz...

快速排序的簡潔寫法

個人總結的兩種寫法,比較傾向於partition1,乙個邊界畢竟比兩個邊界好控制。此處 基於c 其實也就是用了個vector而已,隨便改改其他語言都可以。好多寫法都可以滿足普通情況,但不滿足特殊用例測試 1,1,1,3這種。共享。include stdafx.h include iostream i...

快速排序的遞迴寫法

快速排序 遞迴 遞迴思想 單趟來說,begin找比key大的,end找比key小的,當各自都找到的時候,若begin比end小,則交換兩個資料,然後繼續找,當再找到的時候,如果 begin比end大,則比較a begin 和key的值,若a begin 大於key,說明 a begin 的位置應該是...