希尔排序C语言代码有几行看不懂,大神帮忙解释一下哈。

2025-03-20 05:02:03
推荐回答(1个)
回答1:

while(d>=1)
{
for(i=d+1;i<=n;i++)
{
s[0]=s[i]; //取操作数的第i个数复制放入“临时”存储中;如n等于10,i等于6;
j=i-d; //在第i个数前面,且距离为d的数,如i等于6,j=1;即下面将首先将第六个数和第一个数进行比较;
while((j>0)&&(s[0] {
s[j+d]=s[j];
j=j-d;
}
s[j+d]=s[0];
}
d=d/2;
}