码迷,mamicode.com
首页 >  
搜索关键字:希尔    ( 1342个结果
希尔排序算法和快速排序算法
希尔排序源代码如下: #include //希尔排序 void shellSort(int a[],int l, int r){ //一次排序同一步长所组成的集合 如a[0],a[5],a[10]... int i,j,h; for(h=1;h0;h/=3) f...
分类:编程语言   时间:2015-08-16 12:27:07    阅读次数:116
插入排序和希尔排序
插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序, 插入排序的基本思想是:每步将一个待排序的纪录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全部插入完为止。 public static void sortInsert(int[] datas){ int N = datas.length; ...
分类:编程语言   时间:2015-08-15 20:09:43    阅读次数:132
算法学习之排序算法(四)(希尔排序)
希尔排序的基本思想是 把记录按步长 gap 分组,对每组记录采用直接插入排序方法进行排序。 随着步长逐渐减小,所分成的组包含的记录越来越多,当步长的值减小到 1 时,整个数据合成为一组,构成一组有序记录,则完成排序。...
分类:编程语言   时间:2015-08-15 20:03:18    阅读次数:125
排序算法系列——直接选择排序
前面两篇介绍了两种插入排序算法:直接插入排序和希尔排序。这篇介绍选择排序的一种:直接选择排序。从名字就可以看出直接选择排序与直接插入排序很相似,两者相同点在与都是将待排序序列分成有序区和无序区两部分,不同之处在于直接插入排序是从无序区选出一个插入到有序区合适的位置,而直接选择排序是从无序区选出最小的一个插入到有序区尾部,使得有序区保持有序。 基本思想: 一组待排序的数据,首先将其划分成两部分,一...
分类:编程语言   时间:2015-08-13 22:28:53    阅读次数:203
排序算法系列——希尔排序
希尔排序同之前介绍的直接插入排序一起属于插入排序的一种。希尔排序算法是按其设计者希尔(Donald Shell)的名字命名,该算法由1959年公布,是插入排序的一种更高效的改进版本。它的作法不是每次一个元素挨一个元素的比较。而是初期选用大跨步(增量较大)间隔比较,使记录跳跃式接近它的排序位置;然后增量缩小;最后增量为 1 ,这样记录移动次数大大减少,提高了排序效率。希尔排序对增量序列的选择没有严格规...
分类:编程语言   时间:2015-08-13 12:14:05    阅读次数:167
排序算法系列——直接插入排序
直接插入排序与希尔排序一起属于插入排序的一种。插入适合于针对小数据量进行排序,当数据量很大时插入排序的效率相对其他排序会较低,因为他的时间复杂度是0(n2)(下面会进行分析)。 基本思想:一组待排序的数据,首先将其划分成两部分,一部分是已排好序的,另一部分是待排序的,然后依次从待排序部分取出一个数插入到已排序部分的适当位置,保证第一部分始终是已排好序的,等待排序部分全部取出放入已排序部分之后整个排序...
分类:编程语言   时间:2015-08-12 19:42:56    阅读次数:119
数据结构_希尔排序(分组加直接插入排序)
希尔排序介绍希尔排序(Shell Sort)是插入排序的一种,它是针对直接插入排序算法的改进。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。希尔排序实质上是一种分组插入方法。它的基本思想是:对于n个待排序的数列,取一个小于n的整数gap(gap被称为步长)将待排序元素分成若干个组...
分类:编程语言   时间:2015-08-11 12:01:22    阅读次数:144
排序算法(六)——希尔排序
基本思想 希尔排序是基于插入排序的,又叫缩小增量排序。 在插入排序中,标记符左边的元素是有序的,右边的是没有排过序的,这个算法取出标记符所指向的数据,存入一个临时变量,接着,在左边有序的数组中找到临时变量应该插入的位置,然后将插入位置之后的元素依次后移一位,最后插入临时变量中的数据。 试想,假如有一个很小的数据项在靠近右端的位置上,把这个数据项插入到有序数组中时,将会有大量的中间数据项需要右...
分类:编程语言   时间:2015-08-11 10:13:53    阅读次数:156
八大排序算法
八大排序算法阅读目录1. 直接插入排序(Straight Insertion Sort)2. 希尔排序(Shells Sort)3. 直接选择排序(Straight Selection Sort)4. 堆排序(Heap Sort)5. 冒泡排序(Bubble Sort)6. 快速排序(Quick S...
分类:编程语言   时间:2015-08-10 00:15:04    阅读次数:263
希尔排序算法
#include<stdio.h>#definemax100//数组大小voidshellsort(int*a,intn) { intdelta,i,j;for(delta=n/2;delta>0;delta/=2) { for(i=delta;i<n;i++) { inttemp=a[i];for(j=i-delta;j>=0;j-=delta) { if(temp<a[j])a[j+delta]=a[j];elsebreak; } a[j+delta]=temp..
分类:编程语言   时间:2015-08-09 10:59:37    阅读次数:137
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!