希尔排序-C语言

希尔排序-C语言

2020.11月软考时考了希尔排序,但是目前我还是没想明白他的那个if要填什么。。。。。

下面是今天重新看的 《C程序设计语言》书上的例子,这个和之前理解的希尔就没有什么出入了。

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

考试时,把变量j的作用域范围搞错了,最后的v[j+gap] = t;这个竟然被我写错了。。尴尬~
引以为戒~

原文地址:https://www.cnblogs.com/yongchao/p/13960705.html