借助比較的排序每次比較貢獻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。第一次交換後會...