//希尔排序
void ShellSort(int a[] , int length){
int i,j;
int tmp,gap;//tmp为哨兵,gap为分组的步长
for(gap=length/2;gap>0;gap=gap/2){ //将记录表按照步长划分为若干子表
for(i=0;i<gap;i++){ //分别对子表进行直接插入排序
for(j=i+gap;j<length;j+=gap){
if(a[j] < a[j-gap]){
tmp=a[j];
j=j-gap;
while(j>=0 && tmp<a[j]){
a[j+gap]=a[j];
j-=gap;
}
a[j+gap]=tmp;
}
}
}
}
}
希尔排序
转载
希尔排序算法思想
下一篇:二路归并排序
举报文章
请选择举报类型
内容侵权
涉嫌营销
内容抄袭
违法信息
其他
补充说明
0/200
上传截图
格式支持JPEG/PNG/JPG,图片不超过1.9M
相关文章
-
排序(二):希尔排序
希尔排序也属于插入排序。希尔排序的基本思想是:把待排序的数据元素分成若干个小组,对同一小组
希尔排序 排序算法 数据 直接插入排序 -
Go实现希尔排序
希尔排序希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法。func Shell2Sort(arr
golang 排序算法 算法 待排序 希尔排序 -
排序算法python版(4)-希尔排序算法
希尔排序算法动态图如下:希尔排序算法思路希尔排序算法本质上是对插入排序算法的改进,它是发现了当一串数基本有序的情况下
算法 排序算法 插入排序 赋值 希尔排序 -
希尔排序和归并排序
1.首先说一下为什么要搞这些东西。当然是数据结构考
希尔排序 归并排序 i++
692b2d36a523 10 月前
b3c22afca0bd 10 月前