西南科技大學OJ題 希爾排序算法實現1099

希爾排序算法實現

 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]);
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章