希尔排序
来源:互联网 发布:知乎和知网 编辑:程序博客网 时间:2024/06/11 09:38
希尔排序
先取一个小于n的整数d1作为第一个增量,把文件的全部记录分组。所有距离为d1的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量d2<d1重复上述的分组和排序,直至所取的增量 =1( < …<d2<d1),即所有记录放在同一组中进行直接插入排序为止。
# include <stdio.h>void HillSort(int *num, int length){int i, j, temp, gap, t;for(gap = length/2; gap>0; gap/=2){//确定增量 for(i=0; i<=gap; i++){//确定分组 for(j = i+gap; j<length; j+=gap){//进行插入排序 if(num[j-gap]>num[j]){temp = num[j];t = j-gap;while(t>=0&& num[t]>temp){num[t+gap] = num[t];t-=gap;}num[t+gap] = temp;}}}}return ;} int main(void){int num[]={9,8,7,6,5,4,3,2,1,0};int length = 10;HillSort(num, length);for(int i = 0 ;i < 10; i++){printf("%d ", num[i]);}printf("\n");return 0; }
阅读全文
0 0
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- JAVA实现redis超时失效key 的监听触发
- springboot下使用JdbcTemplate和MongoTemplate链接多个mongodb源+sql源
- html非文本只显示一行,多余隐藏的实现
- 聊聊网络游戏同步那点事
- Android MVP 详解(上)
- 希尔排序
- 控制一个div的显示/隐藏
- 关于企业版快递100的坑(M5大32位加密&&请求体某参数Value为Json),加密原理
- Linux简单命令
- C# 获取当前路径7种方法
- Timer和图片框控件,编写不断向左移动的小动画
- Win和Ubuntu时钟不同步
- 开源ETL-kettle
- easyui treegrid按需显示垂直滚动条问题