資料結構實驗之排序六:希爾排序 (SDUT 3403)
阿新 • • 發佈:2018-12-16
其實,感覺好像增量不同的冒泡,希爾排序概念以後補上。
#include <bits/stdc++.h> using namespace std; int a[10005]; int b[10005]; void shsort(int dk, int n, int a[]) { for(int i = dk; i < n; i ++) { for(int j = i - dk; j >= 0; j -= dk) { if(a[j] > a[j + dk]) { int t = a[j]; a[j] = a[j + dk]; a[j + dk] = t; } } } } int main() { int n; while(scanf("%d",&n) != EOF) { for(int i = 0; i < n; i ++) { scanf("%d",&a[i]); b[i] = a[i]; } shsort(n/2,n,a); shsort(1,n,b); for(int i = 0; i < n; i ++) { printf(i == n - 1 ?"%d\n":"%d ",a[i]); } for(int i = 0; i < n; i ++) { printf(i == n - 1 ?"%d\n":"%d ",b[i]); } } return 0; }