首页 > 编程语言 > 详细

希尔排序

时间:2016-02-25 21:11:03      阅读:291      评论:0      收藏:0      [点我收藏+]

希尔排序

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

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

运行结果

技术分享

希尔排序

原文:http://www.cnblogs.com/learning-c/p/5218227.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!