希尔排序
来源:互联网 发布:淘宝店铺怎么商品分类 编辑:程序博客网 时间:2024/05/20 11:50
#include<stdio.h> //希尔排序法 //希尔排序法又称缩小增量法,属于插入类排序,是将整个无序子序列分别进行插入排序的方法 //先取一个整数d1<n,把所有序号相隔d1的数组元素放一组,组内进行直接插入排序;然后取d2<d1 //重复上述分组和排序操作;直至di=1.即所有记录放进一个组中排序为止 void shsort(int s[],int n) //自定义函数shsort { int i,j,k,d; d=n/2; //确定固定增量值 while(d>=1) { for(i=d+1;i<=n;i++) //数组下标从d+1开始进行直接插入排序 { s[0]=s[i]; //设置监视哨 j=i-d; //确定要进行比较的最右边的元素 while((j>0)&&(s[0]<s[j])) { s[j+d]=s[j]; //数据右移 j=j-d; //向左移动固定增量的位置 } s[j+d]=s[0]; //在确定的位置插入s[i] //测试 printf("输出中间结果:\n"); for(k=1;k<=10;k++) printf("%5d",s[k]); printf("\n"); } d=d/2; } } void main() { int a[11],i; printf("请输入10个整数:\n"); for(i=1;i<=10;i++) scanf("%d",&a[i]); //从键盘中输入十个数据 shsort(a,10); printf("排序后的顺序是:\n"); for(i=1;i<=10;i++) printf("%5d",a[i]); printf("\n"); }
1 0
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- C++数组:数组元素、存储引用以及作为函数参数
- 各种编码整理
- 记JSON.stringify的用法(可以传入函数作为参数解决大小写问题)
- startservice()和bindservice()区别
- 二叉树中最大路径和
- 希尔排序
- Blockchain的鱼和熊掌系列(二)分叉问题
- volatile与synchronized的区别
- 基本数据类型转换
- const , volatile 关键字分析
- 如何修改int的打印内容——史上最难的JAVA面试题
- 推荐系统 Lenskit 初探(一)
- IO流_FileOutputStream的构造方法
- RAID扫盲篇之RAID的由来