直接插入排序 在有序数组中插入一个元素,可以作为一种排序方法的基础 只有一个元素的数组是一个有序数组,对n个元素的数组,可以从第一个元素所构成的单元数组开始,不断实施插入操作 插入第二个元素,得到2个元素的有序数组。插入第三个元素,得到3个元素的有序数组 如此反复,得到n个元素的有序数组 示例 对序 ...
分类:
编程语言 时间:
2020-04-13 09:13:44
阅读次数:
59
1.希尔排序 希尔排序是对直接插入排序的一种改进,基本思想是隔一定间隔取元素组成一组元素,然后对这组元素进行直接插入排序,所有元素排序完一次后。间隔减少,再进行同样的操作,直到间隔变为1,这时就是直接插入排序了,因为经过前面的步骤,元素大多数都是有序了,直接插入排序,对有序序列的效率是很高的。 2. ...
分类:
编程语言 时间:
2020-04-12 16:53:51
阅读次数:
86
排序算法 直接插入排序:将数组中的所有元素依次跟前面已经排好的元素相比较,如果选择的元素比已排序的元素小,则交换,直到全部元素都比较过 希尔排序:将待排序数组按照步长gap进行分组,然后将每组的元素利用直接插入排序的方法进行排序;每次将gap折半减小,循环上述操作;当gap=1时,利用直接插入,完成 ...
分类:
编程语言 时间:
2020-04-06 09:46:47
阅读次数:
78
N 元素个数 第一个for循环控制的是间隔 剩下的两个for循环用于直接插入排序 for (gap = N / 2; gap > 0; gap /= 2) for (i = gap; i < N; i++) for (j = i - gap; j >= 0 && A[j] > A[j + gap]; ...
分类:
编程语言 时间:
2020-03-11 23:52:25
阅读次数:
100
一、希尔排序简述和基本思想 希尔排序也称递减增量排序算法,是插入排序的一种更高效的改进版本。但是希尔排序是非稳定排序的算法。希尔排序比一般插入排序有以下几点改进: 一般插入排序每次只能将数据移动一位,而希尔排序是按照步长移动的(步长=数组长度/2),步长是递减的。 希尔排序的基本思想是:先将整个待排 ...
分类:
编程语言 时间:
2020-03-10 13:40:01
阅读次数:
59
基本排序算法 直接插入排序 方法:从当前记录开始,逐个与前面的记录比较,若当前记录小,则把前面的记录后移一位,否则插入当前记录 运行时间与待排序的记录的顺序有关 时间复杂度O(n2) 稳定性:稳定 代码 直接选择排序 做法:一次从未排序的序列中选择最小的值,与当前元素进行交换 时间复杂度: 稳定性: ...
分类:
编程语言 时间:
2020-03-08 19:33:48
阅读次数:
68
1、排序 通常将数据元素称为记录。显然我们输入的是一个记录集合,排序输出的也是一个记录集合。可以将排序看成线性表的一种操作。 排序的依据是关键词之间的大小关系,对同一记录集合,针对不同的关键字进行排序,可以得到不同的序列。 2、影响排序算法性能的几个要素 1)时间性能;尽可能少的关键字比较次数和记录 ...
分类:
编程语言 时间:
2020-03-02 23:05:24
阅读次数:
74
1、直接插入排序 def insert_sort(alist): """插入排序""" n = len(alist) for j in range(1,n): i = j while i > 0: if alist[i] < alist[i-1]: alist[i],alist[i-1] = ali ...
分类:
编程语言 时间:
2020-02-20 13:19:44
阅读次数:
75