题目描述
编程实现希尔排序算法,按照非递减排序,测试数据为整数。
输入
第一行是待排序数据元素的个数n;
第二行是待排序的数据元素。
输出
一趟希尔排序后的结果。
样例输入
10
50 36 41 19 23 4 20 18 12 22
样例输出
4 20 18 12 22 50 36 41 19 23
参考程序
#include<stdio.h>
int main()
{
int n,a[100],i,b,t;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
b=n/2;
for(i=1;i<=b;i++)
if(a[i-1]>a[b+i-1])
{
t=a[i-1];
a[i-1]=a[b+i-1];
a[b+i-1]=t;
}
for(i=0;i<n;i++)
printf("%d ",a[i]);
return 0;
}
注意
该程序仅供学习参考!