# include <stdio.h>
void shell_sort(int a[],int len);
void shell_insert(int a[],int n,int inc);
int main (void)
{
int a[]={13241,654,6321,56,4,1321,65,143,241,651,35,4165,1,651,6541,61,65,165,165,165,64156};
shell_sort(a,sizeof(a)/sizeof(a[0]));
for (int i=0;i<sizeof(a)/sizeof(a[0]);++i)
{
printf ("%d ",a[i]);
}
return 0;
}
void shell_sort(int a[],int len) //希尔排序函数
{
int i = len;
do
{
i = i/3 + 1; //对数组进行分组
shell_insert(a,len,i); //调用直接插入排序
}while(i>1);
}
void shell_insert(int a[],int n,int inc) //直接插入排序
{
int i,j;
for (i=inc;i<n;++i)
{
for (j=i;j>0 && a[j] < a[j-1];--j)
{
int t = a[j];
a[j] = a[j-1];
a[j-1] = t;
}
}
}
希尔排序
最新推荐文章于 2025-01-21 00:21:24 发布