您的位置:首页 > 理论基础 > 数据结构算法

数据结构 -希尔排序

2007-01-23 15:22 405 查看
//希尔插入排序

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: