#include <stdio.h>
#include<stdlib.h>
void ShellSort(int a[],int n)
{ int i,j,temp,in,key;
in = n;
while(in>1)
{
in=in/3+1;
for(i=in;i<n;i++)
{
key=a[i];
j=i-in;
while(j>=0)
{
if(key<a[j])
{
temp=a[j];
a[j]=key;
a[j+in]=temp;
}
j=j-in;
}
}
}
}
void Print(int a[],int n)
{
int i;
for(i=0;i<n;i++)
{
printf("%5d",a[i]);
}
}
int main(void)
{
int *a;
int n,i;
printf("请输入数组长度n= ");
scanf("%d",&n);
a=(int*)malloc(n*sizeof(int));
printf("输入数组= ");
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
ShellSort(a,n);
Print(a,n);
return 0;
}
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。