希尔排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了希尔排序相关的知识,希望对你有一定的参考价值。

希尔排序

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

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

运行结果

技术分享

以上是关于希尔排序的主要内容,如果未能解决你的问题,请参考以下文章

希尔排序

插入排序(直接插入排序折半插入排序希尔排序的算法思想及代码实现)

希尔排序图解与代码

算法-java代码实现希尔排序

希尔排序JAVA代码

《算法》笔记 3 - 选择排序插入排序希尔排序