python - 关于排序算法的困惑,关于选择排序、插入排序和希尔排序
天蓬老师
天蓬老师 2017-04-17 13:31:25
0
4
976

我在书上看到的说明是:一般情况下选择排序慢于插入排序慢于希尔排序,可是我自己用Python测试了下,竟然是选择排序是最快的,希尔排序比插入排序稍微快一点。。

我自己分析原因可能是插入排序和希尔排序有太多交换元素的操作了,所以效率低,但书上说的是希尔排序会是最快的,请各位大神指点?

我的测试代码在这里:http://paste.ubuntu.com/8385144

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回覆(4)
洪涛

說快慢是在基於時間複雜度、空間複雜度等等的條件,你不能說寫個程序一側看誰快,會有偶然性的,請從算法的性能因素方面來考慮

小葫芦

從理論上講理 選擇排序

迷茫

搞1w個用例測一下

小葫芦

插入排序的的if語句應該寫在內循環條件裡面,你的插入排序時間複雜度和選擇排序時間複雜度一樣,所以慢
Java
/**
* 基於交換的插入排序
* @param array,要排序的可比較數組
*/
public static void sort( Comparable[] array ){
for (int i = 1; i for(int j=i;j>0&&less(array[j],array[j-1]);j--){
exch(array, j, j-1);
}
}
}

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板