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