本文共 654 字,大约阅读时间需要 2 分钟。
void shell_sort(vector &array, int n){ if (array.empty()) { return; } int j, gap; for (gap = n / 2; gap > 0;gap/=2) { for (j = gap; j < n;j++) { if (array[j]=0&&array[k]>temp) { array[k + gap] = array[k]; k -= gap; } array[k + gap] = temp; } } }}另一种方法:void shellsort3(int a[], int n){ int i, j, gap; for (gap = n / 2; gap > 0; gap /= 2) for (i = gap; i < n; i++) for (j = i - gap; j >= 0 && a[j] > a[j + gap]; j -= gap) swap(a[j], a[j + gap]);}
转载地址:http://kytmi.baihongyu.com/