希尔排序

希尔排序

#include<iostream>
using namespace std;

int main()
{
    int r[100];
    int n;
    cin>>n;
    for(int i=1; i<=n; i++) cin>>r[i];
    for(int d=n/2; d>=1; d=d/2)
    {
        for(int i=d+1; i<=n; i++)
        {
            r[0]=r[i];
            int j;
            for(j=i-d; j>0&&r[0]<r[j]; j=j-d)
            {
                r[j+d]=r[j];
            }
            r[j+d]=r[0];
        }
    }
    for(int i=1; i<=n; i++) cout<<r[i]<<" ";
    return 0;
}

 

posted @ 2017-11-30 14:21  magicalzh  阅读(142)  评论(0)    收藏  举报