//希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本.但希尔排序是非稳定排序算法. 希尔排序是基于插入排序的以下两点性质而提出改进方法的 : 1. 插入排序在对几乎已经排好序的数据操作时,效率高,既可以达到线性排序的效率 2. 但插入排序一般来说是低效的,因为插入排序每次只能将数据移... ...
分类:
编程语言 时间:
2019-10-26 13:38:52
阅读次数:
83
一、直接插入排序。 1、介绍。 直接插入排序是一种简单的插入排序法,其基本思想是:把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列。例如,已知待排序的一组记录是:60,71,49,11,24,3,66。假设在排序过程中,前3个记录已 ...
分类:
编程语言 时间:
2019-10-26 10:54:51
阅读次数:
103
void shellSort(int arr[], int n) { int h = 1; while (h = h && e < arr[j - h]; j - h) { arr[j] = arr[j - h]; } arr[j] = e; } ... ...
分类:
编程语言 时间:
2019-10-23 13:14:33
阅读次数:
86
上一节我们说到我们己经实现了一般Vector可以做到的自动扩充,告诉随机存取,那么现在我们需要完成vector的一个排序的功能。 排序算法我们网上一百度哇~~!很常见的就有8大排序算法; 1.选择排序 2.冒泡排序 3.插入排序 4.快速排序 5.归并排序 6.桶排序 7.堆排序 8.希尔排序 具体 ...
分类:
编程语言 时间:
2019-10-21 22:16:52
阅读次数:
127
Contents 定义排序前后两个相等的数相对位置不变,则稳定稳定性的好处从一个键上排序,然后再从另一个键上排序,第一个键排序的结果可以为第二个键排序所用各排序算法的稳定性堆排序、快速排序、希尔排序、直接选择排序不是稳定的排序算法基数排序、冒泡排序、直接插入排序、折半插入排序、归并排序是稳定的排序算... ...
分类:
编程语言 时间:
2019-10-21 11:29:26
阅读次数:
87
注:本文参考https://www.cnblogs.com/chengxiao/p/6104371.html 希尔排序原理 在讲解希尔排序之前,我们有必要先回头看一下插入排序的问题。插入排序不管数组分布时怎么样的,都是一步步的对元素进行比较,移动,插入。比如[5,4,3,2,1,0]这种倒序序列,数 ...
分类:
编程语言 时间:
2019-10-20 12:56:54
阅读次数:
64
希尔排序 什么是希尔排序? 希尔排序的本质就是分组插入排序 希尔排序的思想 将整个待排元素序列分割成若干个子序列 对子序列进行插入排序 依次缩减增量再次进行排序 这样往复直到整个序列元素基本有序(其实也就是增量足够小的时候) 再对整个序列进行一次直接插入排序,这次排序是在整个序列基本有序的状态,接近 ...
分类:
编程语言 时间:
2019-10-17 23:19:19
阅读次数:
83
冒泡排序、选择排序、快速排序、插入排序、希尔排序、归并排序、基数排序、堆排序。 推荐网址1:https://www.cnblogs.com/onepixel/articles/7674659.html 推荐网址2(C++):https://blog.csdn.net/opooc/article/de ...
分类:
编程语言 时间:
2019-10-15 19:11:43
阅读次数:
84
一、冒泡排序 遍历一个数组,如果发现数组中相邻的两个元素不满足要求时,就调整他们的次序,直达最后没有需要调整时说明数组有序。 二、选择排序 三、插入排序 四、希尔排序 五、归并排序 六、快速排序 ...
分类:
编程语言 时间:
2019-10-15 11:42:03
阅读次数:
85
前情回顾:直接插入排序(对插入排序不熟悉的建议先阅读此文) 一天,一尘拿着扑克自己在那玩,刚被师傅看见了 首先它把较大的数据集合分割成若干个小组(逻辑上分组),然后对每一个小组分别进行插入排序,此时,插入排序所作用的数据量比较小(每一个小组),插入的效率比较高 可以看出,他是按下标相隔距离为4分的组 ...
分类:
编程语言 时间:
2019-10-15 10:10:29
阅读次数:
252