希尔排序

希尔排序

不知道怎么证明希尔排序的正确性

#include<stdio.h>
void view(int Av[]);
void shellsort(int v[], int n){
    int gap, i, j, temp;
    for(gap=n/2;gap>0;gap/=2){
        for(i=gap;i<n;i++){
            for(j=i-gap;j>=0 && v[j]>v[j+gap];j-=gap){
                temp=v[j];
                v[j]=v[j+gap];
                v[j+gap]=temp;
            }
        }
    }
}
int main(){
    int v[]={1,5,4,3,2,6,7,8};
    shellsort(v,8);
    view(v);
    getchar();
    getchar();
    return 0;
}
void view(int v[]){//显示A数组当前状态 
    for(int i=0;i<8;i++){ 
        putchar(v[i]+'0'); 
        putchar(' '); 
    } 
    putchar('\n'); 
}

运行结果

posted @ 2016-02-25 20:25  hopskin1  阅读(134)  评论(0编辑  收藏  举报