排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。用一张图概括: 关于时间复杂度: 平方阶 ...
分类:
编程语言 时间:
2019-08-21 11:20:44
阅读次数:
80
比较排序: 冒泡:两两交换 选择:选择末序列最大(最小)值,同对应位置交换 插入:从后往前扫描有序序列 希尔排序:又叫做缩小增量排序,希尔增量:n/2 n/4 ... 1,O(n^2),Hibbard增量:1,3,7,2hk-1,O(n^1.5);下界为O(nlog(2n)) 非比较排序: 桶排序: ...
分类:
编程语言 时间:
2019-08-20 12:52:14
阅读次数:
88
希尔排序增量的问题,引用一本数据结构书中所说: 图示希尔排序思想: ...
分类:
编程语言 时间:
2019-08-14 21:44:18
阅读次数:
75
希尔排序是插入排序的一种,也叫做缩减增量排序,是对插入排序的一种优化,但是不稳定。 ...
分类:
编程语言 时间:
2019-08-10 17:35:41
阅读次数:
86
个人觉得移位法就是借希尔排序进行分组,插入排序进行排序 注释是上一篇的交换法. 而且这种排序的真的很快 ...
分类:
编程语言 时间:
2019-08-07 09:37:43
阅读次数:
153
1.核心思想:希尔排序是插入排序的一种,是直接插入排序的一种改进版本,他们同属于插入排序类。这是一个不稳定的排序算法。采取跳跃分割的策略:将相距某个“增量”的记录组成一个子序列,这样才能保证在子序列内分别进行直接插入排序后得到的结果是基本有序而不是局部有序。2.代码实现: 3.稳定性分析:一次插入排 ...
分类:
编程语言 时间:
2019-08-06 13:50:35
阅读次数:
83
希尔排序(Shell Sort) 插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。 希尔排序是非稳定排序算法。 ...
分类:
编程语言 时间:
2019-07-29 21:47:17
阅读次数:
135
稳定的排序算法:冒泡排序、插入排序、归并排序和基数排序。 不是稳定的排序算法:选择排序、快速排序、希尔排序、堆排序。 冒泡 选择 选择排序的思想是将序列分为有序和无序两个部分,不断从无序序列中选择最小的增加到有序序列中,这样,序列就从小到大排列整齐。 插入排序 插入排序原理是将当前元素与前面的元素比 ...
分类:
编程语言 时间:
2019-07-27 15:41:20
阅读次数:
127
#include #include #include int main(){ int a[15]; //设立随机数 srand(time(0)); for(int i=0;ia[i+l]){ //先把当前位置的值和x交换 swap(a+i,a+i+l); ... ...
分类:
编程语言 时间:
2019-07-22 00:11:31
阅读次数:
123
希尔排序法 希尔排序也是一种插入排序,他是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序 希尔排序交换法 ...
分类:
编程语言 时间:
2019-07-04 00:10:12
阅读次数:
150