数据结构精要------直接插入排序和希尔排序算法...
分类:
其他好文 时间:
2014-08-07 23:19:45
阅读次数:
278
先上代码。/**** @author:hushunfeng** 直接插入排序 从小到大进行排列*/#includevoid insertSort(int *array,int arraySize) { //用于缓存被插入数 int temp; int i; in...
分类:
其他好文 时间:
2014-08-05 18:32:49
阅读次数:
172
排序算法总结(C语言版)1. 插入排序1.1 直接插入排序1.2 Shell排序2. 交换排序2.1 冒泡排序2.2 快速排序3. 选择排序3.1 直接选择排序3.2 堆排序4. 归并排序4.1 二路归并排序4.2 自然合并排序5. 分布排序5.1 基数排序1.插入排序1.1 直接插入排序...
分类:
编程语言 时间:
2014-08-01 23:04:42
阅读次数:
349
摘要:
前几天,看到一篇前辈的博文“程序员必知的8大排序”,不禁的手痒起来,重新翻开严蔚敏老师的《数据结构》复习了一遍,然后一一的用java去实现,其中有不足之处,还望各位道友指正出来。
先来看看8种排序之间的关系:
第一:直接插入排序
1. 基本思想:在要排序的一组数中,假设前面(n-1) [n>=2] 个数已经是排好顺序的,现在要把第...
分类:
其他好文 时间:
2014-07-29 12:59:47
阅读次数:
366
#SIZE 10
//直接插入排序
void insert_sort(){
int i,j;
int array[SIZE+1];
array[]={0,12,23,11,55,2,34,18,20,48,22};
for(i=2;i
array[0]=...
分类:
其他好文 时间:
2014-07-27 11:11:32
阅读次数:
238
一、直接插入排序算法:void insertSort(int* data, int len){ int sentry;//哨兵 int i,j; for(i = 1; i 1)趟排序时,前(i-1)个记录已经有序,于是查找插入位置我们可以用折半查找。算法如下: 1 void bI...
分类:
其他好文 时间:
2014-07-26 00:41:36
阅读次数:
284
希尔排序——1959年shell提出而得名,也称为缩小增量排序算法,它是直接插入排序的改进,效率比较高,适合于中小规模的排序。
具体的算法实现步骤为:首先得知道直接插入排序的算法,然后就是选择增量给原数列进行分组,对每个分得的小组进行直接插入排序便可,然后逐渐减小这个增量,依然进行新的分组的直接插入排序,直到增量为1,此时数列便是有序数列了。具体的代码如下:
首先是对特定的增量的分组的直接插入...
分类:
其他好文 时间:
2014-07-21 16:28:03
阅读次数:
198
插入排序1.直接插入排序原理:将数组分为无序区和有序区两个区,然后不断将无序区的第一个元素按大小顺序插入到有序区中去,终于将全部无序区元素都移动到有序区完毕排序。要点:设立哨兵,作为暂时存储和推断数组边界之用。实现:VoidInsertSort(NodeL[],intlength){Inti,j;/...
分类:
其他好文 时间:
2014-07-21 08:36:11
阅读次数:
278
希尔排序(Shell
Sort)是插入排序的一种。是针对直接插入排序算法的改进。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。先取一个小于n的整数d1作为第一个增量,把文件的全部记录分组。所有距离为d1的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量d2
希尔排序是基于插入排序的以下两点性质而提出改进方法的:
1.插入排序在对几乎已...
分类:
其他好文 时间:
2014-07-19 12:04:01
阅读次数:
202
直接插入排序是一种比较简单的排序方法,他的原理类似于我们玩牌的时候抓牌,手中的牌是按照一定的顺序排列的,然后摸到的牌先进行查找顺序,将牌插到应该插入的地方,直到最后一张牌的插入,那么手中的牌都是有序的。
数列的直接插入排序也是这样的,将第一个数看做是排列有序的数列,然后将后面的数依次插入到数列中:
代码如下
void _insert_sort(int *A,int size)
{
int ...
分类:
其他好文 时间:
2014-07-19 02:35:06
阅读次数:
186