各種排序演算法的比較次數

2021-07-04 10:29:46 字數 654 閱讀 1314

借助比較的排序每次比較貢獻o(1)的複雜度

插入排序

最少n-1 最多n(n-1)/2

氣泡排序

最少n-1 最多n(n-1)/2

選擇排序

n(n-1)/2

快速排序

intpartition(

int*arr , 

intlow , 

inthigh)  

arr[low] = pivo;  

return

low;  

}  // 快速排序 遞迴

void

qsort(

int*arr , 

intlow , 

inthigh)  

}  分析:在遞迴部分由於遞迴深度可為logn -- n,故遞迴部分的比較次數為logn -- n,partition部分的比較次數與資料分布有關,大約為n次,還需進一步分析。。。

總共比較次數nlogn -- n^2

希爾排序

??歸併排序

在每一次二路歸併的過程中,對於n個元素:當乙個陣列的最小元素比另一陣列的最大元素還大時;若兩個陣列元素交替增長,比較次數最多,為2n-1

再加上遞迴深度logn,故比較次數為 nlogn -- (2n-1)logn堆排序

??

快速排序比較次數 各種排序演算法總結

各種排序演算法的穩定性,時間複雜度和空間複雜度總結 我們比較時間複雜度函式的情況 時間複雜度函式o n 的增長情況 所以對於n較大的排序記,一般的選擇都是時間複雜度為o nlog2n 的排序方法。時間複雜度來說 1.平方階o n2 排序 各類簡單排序 直接插入排序,直接選擇排序和氣泡排序 2.線性對...

各種排序演算法比較

花了很長時間終於把排序的基礎學了一下,這段時間學了很多東西,總結一下 學的排序演算法有 插入排序,合併排序,氣泡排序,選擇排序,希爾排序,堆排序,快速排序,計數排序,基數排序,桶排序 沒有實現 比較一下學習後的心得。我不是很清楚他們的時間複雜度,也真的不知道他們到底誰快誰慢,因為書上的推導我確實只是...

各種排序演算法比較

排序相關的演算法複雜度分析 下邊分別實現下各個演算法 簡單選擇排序 1 簡單選擇排序 2void select sort int a,intn 3 16 17swap a i a index 18 19 這裡簡單選擇排序之所以不穩定是因為交換的時候會打亂順序,例如 5,4,5,1,6。第一次交換後會...