希尔排序算法实现
1000(ms)
10000(kb)
2097 / 3656
编程实现希尔排序算法,按照非递减排序,测试数据为整数。
输入
第一行是待排序数据元素的个数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;int data[100];
scanf("%d",&n);
for(int i=0;i<n;i++) scanf("%d",&data[i]);
int d=n/2;//将数组分成2组
for(int i=d;i<n;i++)
{
if(data[i]<data[i-d])
{
int t=data[i];
data[i]=data[i-d];
data[i-d]=t;
}
}
for(int i=0;i<n;i++) printf("%d ",data[i]);
}