希爾排序算法實現
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]);
}