C语言 | 希尔排序

网友投稿 717 2022-05-28

例100:C语言实现希尔排序。

解题思路:希尔排序是插入排序的一种又称缩小增量排序,是直接插入排序算法的一种更高效的改进版本,希尔排序是非稳定排序算法。希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。

C语言源代码演示:

#include//头文件 int main()//主函数 { void shsort(int s[],int n); //函数声明 int array[11],i;//定义数组和整型变量 printf("请输入10个数:\n");//提示语句 for(i=1;i<=10;i++) { scanf("%d",&array[i]); //键盘输入10个数 } printf("初始顺序:\n");//提示语句 for(i=1;i<11;i++) { printf("%5d",array[i]);//输出键盘输入的10个数 } shsort(array,10);//调用排序函数 printf("\n排序后顺序:\n");//提示语句 for(i=1;i<11;i++) { printf("%5d",array[i]);//输出排序后的10个数 } printf("\n"); //换行 return 0;//函数返回值为0 } void shsort(int s[],int n) { int i,j,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]

C语言 | 希尔排序

编译运行结果:

请输入10个数: 10 8 7 6 3 1 0 2 4 5 初始顺序: 10 8 7 6 3 1 0 2 4 5 排序后顺序: 0 1 2 3 4 5 6 7 8 10 -------------------------------- Process exited after 16.17 seconds with return value 0 请按任意键继续. . .

以上,如果你看了觉得对你有所帮助,就给小林点个赞,分享给身边的人叭,这样小林也有更新下去的动力,跪谢各位父老乡亲啦~

C 语言

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:福利!还在用控制面板来隐藏文件夹?来试试这个吧!
下一篇:linux之read命令
相关文章