希尔排序缩小增量排序

 

希尔排序是直接插入排序的优化不稳定,nlogn

 

 

#include<iostream>
using namespace std;
int r[100]={0};
int n;
void ShellSort(){
    int d=n/2;//间隔根据实际情况取得
    while(d>=1){
        for(int i=d+1;i<=n;i++){
            r[0]=r[i];
            int j=i-d;
            while(j>0&&r[0]<r[j]){
                r[j+d]=r[j];//后移
                j=j-d; 
            }
            r[j+d]=r[0];
        }
        d=d/2;
    } 

}
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++) cin>>r[i];
    ShellSort();
    for(int i=1;i<=n;i++) cout<<r[i];
    return 0;
}

 

posted @ 2021-12-09 19:30  arvin。  阅读(31)  评论(0)    收藏  举报