69,380
社区成员
发帖
与我相关
我的任务
分享
for(half=n/2;half>0;half=half/2) //控制增量,初次取序列的一半为增量,以后每次减半,直到增量为1。
for(i=half;i <n;i++) /*这个实际上就是直接插入排序*/
for(j=i-half;j>=0&&s[j]>s[j+half];j-=half)
{
temp=s[j];
s[j]=s[j+half];
s[j+half]=temp;
}