此種方法有缺陷
缺點:
此種方法是先按照dk=n/2排序的,然後再按照1排序的此種方法是先按照dk=n/2排序的,然後再按照1排序的,如果順序反過來,2個結果是一樣的,wa
原因:陣列改變了
解決方法:再設定另乙個陣列,儲存所給的陣列
#include #include #include int n,a[10010],b[10010];
void shell(int dk)//dk表示增量
for(i=0;i改進版
#include #include #include int n,a[10010],b[10010];
void shell(int a,int dk)//dk表示增量 //改進
for(i=0; iprintf("%d ",a[i]);
printf("%d\n",a[i]);
}int main()
shell(a,n/2);//改進
shell(b,1);//改進
}return 0;
}
資料結構實驗之排序六 希爾排序
time limit 1000ms memory limit 65536k 有疑問?點這裡 我們已經學習了各種排序方法,知道在不同的情況下要選擇不同的排序演算法,以期達到最好的排序效率 對於待排序資料來說,若資料基本有序且記錄較少時,直接插入排序的效率是非常好的,希爾排序就是針對一組基本有序的少量資...
資料結構實驗之排序六 希爾排序
我們已經學習了各種排序方法,知道在不同的情況下要選擇不同的排序演算法,以期達到最好的排序效率 對於待排序資料來說,若資料基本有序且記錄較少時,直接插入排序的效率是非常好的,希爾排序就是針對一組基本有序的少量資料記錄進行排序的高效演算法。你的任務是對於給定的資料進行希爾排序,其中增量dk n 2 k ...
資料結構實驗之排序六 希爾排序
我們已經學習了各種排序方法,知道在不同的情況下要選擇不同的排序演算法,以期達到最好的排序效率 對於待排序資料來說,若資料基本有序且記錄較少時,直接插入排序的效率是非常好的,希爾排序就是針對一組基本有序的少量資料記錄進行排序的高效演算法。你的任務是對於給定的資料進行希爾排序,其中增量dk n 2 k ...