本文介绍: 思想:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。读者可能会想这个希尔排序是三层循环,而插入排序才两层循环,不可能出现其算法更优越啊!这是一个相同数据检测出来两者的时间差距,可见两者的差距有多大,希尔牛逼!n=2:外层2次,内层最坏2次。n=3:外层3次,内层最坏3次。n=n:外层n次,内层最坏n次。时间复杂度为:O(N*N)=O(N^2);
一.插入排序.
当插入第i(i>=1)个元素时,前面的array[0],array[1],.,array[i-1]已经排好序,此时用array[i的排序码与array[i-1]array[i-2].的排序码顺序进行比较,找到插入位置即将arrayU插入,原来位置上的元素顺序后移.
二.插入排序进阶—-希尔排序.
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。