【Sort】希尔排序

本文详细介绍了希尔排序算法,一种高效的插入排序变种。通过逐步减少增量的方式进行排序,展示了具体的实现代码,并讨论了不同增量对算法效率的影响。

  希尔排序(ShellSort),缩小增量排序,使用希尔增量时最坏运行时间O(n^2),不同的增量会对运行时间产生显著影响。

  

 1 void shellsort(int *nums,int n)
 2 {
 3     int gap,i,j;
 4     int tmp;
 5     for(gap=n/2;gap>0;gap/=2)        //改变增量
 6     {
 7         for(i=gap;i<n;i++)
 8         {
 9             tmp=nums[i];
10             for(j=i;j>0;j-=gap)
11                 if(tmp<nums[j-gap])
12                     nums[j]=nums[j-gap];
13                 else
14                     break;
15             nums[j]=tmp;
16         }
17     }
18 }

 

  

转载于:https://www.cnblogs.com/fcyworld/p/6171989.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值