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

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

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

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

天蓬老师
天蓬老师

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

Antworte allen (4)
洪涛

说快慢是在基于时间复杂度、空间复杂度等等的条件,你不能说写个程序一侧看谁快,会有偶然性的,请从算法的性能因素方面来考虑

    小葫芦

    从理论上讲理 选择排序<插入排序<希尔排序 但是实际耗时取决于样本和具体实现。

      迷茫

      搞1w个用例测一下

        小葫芦

        插入排序的的if语句应该写在内循环条件里面,你的插入排序时间复杂度和选择排序时间复杂度一样,所以慢
        Java
        /**
        * Insertion sort based on exchange
        * @param array, Array of Comparable to be Sorted
        */
        public static void sort( Comparable[] array ){
        for (int i = 1; i < array.length; i++) {
        for(int j=i;j>0&&less(array[j],array[j-1]);j--){
        exch(array, j, j-1);
        }
        }
        }

          Neueste Downloads
          Mehr>
          Web-Effekte
          Quellcode der Website
          Website-Materialien
          Frontend-Vorlage
          Über uns Haftungsausschluss Sitemap
          Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!