//希尔插入排序
void main( )
{
int n=9;
int R[10]={50,32,65,76,90,16,23,85,07,50};
int i,j,h,t=1,temp,d=1;
while(d>0)
{
d=n/2;
if(d>0)
for(i=d;i<10;i++)
{
if(R[i]<R[i-d])
{
temp=R[i];
j=i-d;
do {
R[j+d]=R[j];
j=j-d;
}while(j>=0&&temp<R[j]);
R[j+d]=temp;
}
for(int a=0;a<10;a++)
printf("%d ",R[a]);
printf(" %d /n",i);
}
printf("/n");
n=d;
}//希尔交换排序
void main()
{
int n=9;
int r[10]={50,32,65,76,90,16,23,85,07,50};
int i,j,h,temp,d=1;while(d>0)
{
d=n/2;
if(d>0)
for(j=d;j<10;j++)
{
h=j-d;
while(h>=0)
{
if(r[h]>r[h+d])
{
temp=r[h];
r[h]=r[h+d];
r[h+d]=temp;
h=h-d;
}
else h=-1;
}
for(int a=0;a<10;a++)
printf("%d ",r[a]);
printf("/n");
}
n=d;
}
数据结构 -希尔排序
最新推荐文章于 2024-11-09 12:14:45 发布