您的位置:首页 > 编程语言 > C语言/C++

C语言——希尔排序

2016-02-04 17:21 489 查看

看了网上很多个希尔排序方法,但是我都不是很明白,自己写了一个,

#include<stdio.h>
void insertSort(int a[],int n)
{
int gap=0;
for(gap=n/2;gap>0;gap=gap/2)
{
if (gap!=1)
{
for(int i=0;i<n;i=gap+i)
{   int t;
if (a[i]>a[gap+i])
{t=a[i];
 a[i]=a[gap+i];
 a[gap+i]=t;}
}
}
else 
for(int i=1;i<n;i++)
{
int temp;
int j=0;
temp=a[i];
for(j=i-1;j>=0 && temp<a[j];j--)
a[j+1]=a[j];
a[j+1]=temp;
}
}
}
void main()
{
int i,a[10];
printf("请输入要比较的数:\n");
    for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("排序前的顺序是:\n");
for(i=0;i<10;i++)
printf("%d\n",a[i]);
insertSort(a,10);
printf("排序后的顺序是:\n");
for(i=0;i<10;i++)
printf("%d\n",a[i]);
}

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: