一、插入排序 ?思想:每步将一个待排序的记录,按其顺序码大小插入到前面已经排序的字序列的合适位置,直到全部插入排序完为止。?关键问题:在前面已经排好序的序列中找到合适的插入位置。?方法:–直接插入排序–二分插入排序–希尔排序①直接插入排序(从后向前找到合适位置后插入) 1、基本思想:每步将一个待排序 ...
分类:
编程语言 时间:
2017-04-29 15:05:57
阅读次数:
205
转载请注明出处 http://blog.csdn.net/pony_maggie/article/details/36706131 作者:小马 一希尔排序 上一篇讲到的直接插入排序,时间复杂度O(n^2). 请在脑海里想一下它的过程。假设一个序列本来就是有序的,对它排序的时间复杂度是O(n)。所以当 ...
分类:
编程语言 时间:
2017-04-27 21:07:29
阅读次数:
211
希尔排序又称缩小增量排序,该方法的思想是将所有的待排元素分成若干个子序列,相隔距离为某个增量,将对每一个子序列进行直接插入排序,不断缩小增量,继续排序,最后增量很小时候进行最后一次插入排序 以n=10的一个数组49, 38, 65, 97, 26, 13, 27, 49, 55, 4为例 第一次 g ...
分类:
编程语言 时间:
2017-04-27 21:06:54
阅读次数:
174
希尔排序对插入排序进行了改进,传统的插入排序,每取一个数都要把前面平均一半的数往后移动一位以空出该数的位置,这样的复制次数太多,如果有很多很小的数靠近右端,几乎每次都要将左侧所有的数移动一位。 以10个数为例,试想把数据先分组,先把第0、4、8个分为一组进行插入排序;再将第1、5、9位的数据进行插入... ...
分类:
编程语言 时间:
2017-04-26 13:50:10
阅读次数:
174