幾種快速的排序演算法

2021-05-23 17:23:09 字數 394 閱讀 6042

鴿巢排序,排序位元組串、寬位元組串最快的排序演算法,計數排序的變種(將計數緩衝區大小固定,少一次遍歷開銷),速度是stl中std::sort的20多倍 ,更重要的是實現極其簡單!缺點是需要乙個size至少等於待排序陣列取值範圍的緩衝區,不適合int等大範圍資料。

多一次遍歷的計數排序,排序位元組串的話速度約是鴿巢排序的一半。

快速排序,快排最標準的遞迴實現,速度約是std::sort的一半

這是速度與std::sort相當的三路劃分快排

相當簡單的梳排序,效率是std::sort的三分之一

lsd基數排序,與std::sort速度相當,但是需要乙個與輸入緩衝一樣大的緩衝區

歸併排序,效率越是std::sort的六分之一,通常的實現是遞迴,但和快排不同,歸併改迴圈極其容易

快速排序演算法的幾種實現

序列範圍 l,u 選取第乙個元素為樞紐值,然後圍繞t劃分陣列 m a 1 for i a,b if x i 迴圈終止後有 此時交換x l 和x m 即可。void qsort1 int x,int l,int u swap x l x m qsort x,l,m 1 qsort x,m 1,u 可以...

幾種排序演算法 (快速排序 堆排序)

快速排序 include usingnamespacestd voidqsort inta,intlow,inthigh intfirst low intlast high intkey a first 用字表的第乙個記錄作為樞軸 while first last a first a last 將比...

快速排序演算法的幾種版本及實現

寫在前面的話 最近系統地學習了快速排序演算法,在此作一筆記。主要包括快排的各種版本 普通版本,改進的普通版本,隨機化版本,三數值取中分割版本和stooge版本。對各版本進行了簡要分析,並給出了具體實現。演算法導論 對快排的描述 快速排序是基於分治模式的,下面是對乙個典型子陣列a p.r 排序的分治過...