希尔排序简述 希尔排序是基于插入排序的以下两点性质而提出改进方法的:插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率。(希尔排序先将部分数据进行排序,相当于已经部分排好序)但插入排序一般来说是低效的,因为插入排序每次只能将数据移动一位。(希尔排序先将间隔大的数据进行大的移位....
分类:
编程语言 时间:
2015-04-29 17:03:42
阅读次数:
146
1.之前对pjsip会话状态机,voip skeleton,Email Server和iptable,nginx等程序的总结不够,没有形成清晰的认识2.对学过的shell,makefile知识点要写好总结,以免以后用到能够快速地学习3.对学过的算法(快排,堆,合并,希尔,二叉树的遍历等)和数据结构(...
分类:
其他好文 时间:
2015-04-29 08:37:32
阅读次数:
201
1.归并排序
void merge(int *result, int begin, int mid, int end, int *temp)
{
int k = begin;
int i = begin;
int j = mid + 1;
while (i <= mid&&j <= end){
temp[k++] = result[i] < result[j] ? result[i+...
分类:
编程语言 时间:
2015-04-27 20:09:43
阅读次数:
155
希尔排序可谓是插入排序的升级版,它通过比较相距一定间隔的元素来工作;各趟比较所用的距离随着算法的进行而减小,直到只比较相邻元素的最后一趟排序为止。由于这个原因,希尔排序也被称为缩小增量排序
希尔排序使用一个序列h1,h2,h3,....,hk,叫做增量序列。只要h1=1,任何增量序列都是可行的。在使用增量hk的一趟排序之后,对于每一个i我们有A[i]
例如:
0 1
2 3
4 5 6...
分类:
编程语言 时间:
2015-04-27 16:59:38
阅读次数:
152
常见经典排序算法1.希尔排序n的1.2次幂 不稳定2.二分插入法3.直接插入法O(n*n)稳定4.带哨兵的直接排序法5.冒泡排序O(n*n)稳定6.选择排序O(n*n)不稳定7.快速排序log2(n)*n不稳定8.堆排序log2(n)*n不稳定归并排序:log2(n)*n稳定一.希尔(Shell)排...
分类:
编程语言 时间:
2015-04-25 16:34:17
阅读次数:
178
排序算法的稳定性大家应该都知道,通俗地讲就是能保证排序前两个相等的数据其在序列中的先后位置顺序与排序后它们两个先后位置顺序相同。即:如,如果A i == A j,Ai 原来在 Aj 位置前,排序后 Ai仍然是在 Aj 位置前。1、简单总结 选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法 .....
分类:
编程语言 时间:
2015-04-21 16:03:55
阅读次数:
126
------来自科学松鼠会-------希尔伯特问题三:数学是可判定的吗?也就是说,能够找到一种方法,仅仅通过机械化的计算,就能判定某个数学陈述是对是错?数学证明能否机械化?图灵机的示例。绿点指示处为当前状态,每条规则的4项分别是:当前位置读入的字符、当前位置写入的字符、纸带的移动方向、将要转移到的...
分类:
其他好文 时间:
2015-04-20 22:11:02
阅读次数:
259
1 .插入排序的过程如同我们平时打扑克牌取牌插入的过程,不断将取出的扑克牌插入已经排好的地方。插入排序过程初始有序区间大小为1,取出无序区间的首元素,查找有序区间的合适位置,进行插入。不断重复上述过程,即可完成操作。图解示例 1 //插入排序 2 //karllen @2015 3 void ins...
分类:
编程语言 时间:
2015-04-20 20:43:45
阅读次数:
156
交换排序(冒泡排序,快速排序);插入排序(直接插入排序,希尔排序);选择排序(简单选择排序,堆排序);归并排序;java源码实现常见内排序
分类:
编程语言 时间:
2015-04-18 21:43:27
阅读次数:
193