(1)希尔排序: 希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含 ...
分类:
编程语言 时间:
2018-07-04 22:55:55
阅读次数:
187
python 排序与搜索 学习了一下排序与搜索,做一下总结。如果那里不对,请多指教。 排序算法:是一种能将一串数据依照特定顺序进行排列的一种算法。 稳定性:稳定排序算法会让原本有相等键值的纪录维持相对次序。也就是如果一个排序算法是稳定的,当有两个相等键值的纪录R和S,且在原本的列表中R出现在S之前, ...
分类:
编程语言 时间:
2018-07-04 01:05:47
阅读次数:
186
之前的排序都是基于比较的排序,而桶排序是基于数据状况的排序,这就比较麻烦了,虽然很快,可是分析数据状况是很繁琐的。桶排序 是可以实现稳定排序的。常用有两种实现,一种是计数排序,一种是基数排序 (最后一节)。 桶排序的扩展,排序后的最大相邻数差值问题。有N个数字,建立N+1个桶,最大的差值不可能来自一 ...
分类:
其他好文 时间:
2018-07-03 19:50:52
阅读次数:
137
堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序 ...
分类:
编程语言 时间:
2018-07-02 18:18:17
阅读次数:
667
排序算法(英语:Sorting algorithm)是一种能将一串数据依照特定顺序进行排列的一种算法。 排序算法的稳定性 稳定性:稳定排序算法会让原本有相等键值的纪录维持相对次序。也就是如果一个排序算法是稳定的,当有两个相等键值的纪录R和S,且在原本的列表中R出现在S之前,在排序过的列表中R也将会是 ...
分类:
编程语言 时间:
2018-06-26 18:36:08
阅读次数:
216
快速排序时间复杂度为O(logn)~O(n²)的不稳定排序 有很多快速排序优化算法。参考https://blog.csdn.net/hacker00011000/article/details/52176100 基本算法如下: 实验结果如下: ...
分类:
编程语言 时间:
2018-05-26 11:52:02
阅读次数:
143
转自:https://www.cnblogs.com/codingmylife/archive/2012/10/21/2732980.html 这几天笔试了好几次了,连续碰到一个关于常见排序算法稳定性判别的问题,往往还是多选,对于我以及和我一样拿不准的同学可不是一个能轻易下结论的题目,当然如果你笔试 ...
分类:
编程语言 时间:
2018-05-24 01:12:31
阅读次数:
211
算法定义: 希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。 希尔排序是基于插入排序的以下两点性质而提出改进方法的: 插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率。 但插入排序一般来说 ...
分类:
编程语言 时间:
2018-04-29 19:55:38
阅读次数:
216
1. 直接插入排序(稳定排序) 简单的说就是将序列分为有序序列和无序序列。每一趟排序都是将无序序列的第一个元素插入有序序列中。R[1… i-1] <- R[i…n] , 每次取R[i]插入到R[1… i-1]中。 步骤如下: 1> 在R[1 … i-1]中找到R[i]的插入位置k (0<k<i) 2 ...
分类:
编程语言 时间:
2018-04-15 18:00:06
阅读次数:
200
算法:希尔排序 快速开始 百科解释 希尔排序(Shell's Sort)是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因D.L.Shell于1959年提出而得名。 希尔排序是基于 ...
分类:
编程语言 时间:
2018-04-07 18:58:58
阅读次数:
197