各種排序方法的比較 各種排序算法最好和最壞情況比較?
各種排序算法最好和最壞情況比較?不知道怎么回答,各種排序說得太多了,在這里簡單談幾句吧,希望對你有所幫助!例如,當對n個順序存儲元素進行排序時,[0]用作“哨兵”(即,[0]不存儲數(shù)據(jù),而是用作輔助存
各種排序算法最好和最壞情況比較?
不知道怎么回答,各種排序說得太多了,在這里簡單談幾句吧,希望對你有所幫助
!例如,當對n個順序存儲元素進行排序時,[0]用作“哨兵”(即,[0]不存儲數(shù)據(jù),而是用作輔助存儲空間)
1直接插入排序:比較的最小次數(shù)為n-1;(n-1)(n2)/2的最大次數(shù)
移動的最小次數(shù)為0;最大(n-1)(n4)/2
使用一個輔助存儲空間,這是一個穩(wěn)定的排序;
2半插入排序:最小和最大比較數(shù)為n*log2n(其中2是底部,底部相同),
最小移動次數(shù)為0,最大時間復雜度為O(N2)(n的平方也表示在下面);
使用輔助存儲空間是一種穩(wěn)定排序;
3氣泡排序:最小比較次數(shù)為n-1,最大時間復雜度為O(N2)
最小移動次數(shù)為0,最大時間復雜度為O(N2)
使用輔助內(nèi)存空間是穩(wěn)定排序;
4簡單選擇排序:比較次數(shù)為n(n-1)/2
最小移動次數(shù)為0,最大移動次數(shù)為3(n-1)
使用輔助內(nèi)存空間是穩(wěn)定排序;
5快速排序:比較的時間復雜度最少比較和移動次數(shù)表示為O(n*log2n)
最多比較和移動次數(shù)的時間復雜度表示為O(N2)
使用的輔助存儲空間至少為log2n,最大值為n的平方;這是一種不穩(wěn)定排序;
6堆排序:比較和移動時間之間沒有好的或壞的差別,兩者都是o(n*log2n)
使用輔助內(nèi)存空間,這是一種不穩(wěn)定的排序;
7雙向合并排序:比較和移動時間之間沒有好的或壞的差別,兩者都是o(n*log2n)
需要n個輔助存儲空間,這是一種穩(wěn)定的排序方法;
另外,還有很多排序方法,如希爾排序、基數(shù)排序、雙向插入排序等很多排序方法,這里不一一列舉,希望對您有所幫助!