乙個較難的排序,但是由於**比較簡潔,理解起來也相對容易
若資料基本有序且記錄較少時, 直接插入排序的效率是非常好的,希爾排序就是針對一組基本有序的少量資料記錄進行排序的高效演算法。我們的任務是對於給定的資料進行希爾排序,其中增量dk=n/(2^k)(k=1,2,3……)
題目要求我們用增量n/2和1來排序,定義乙個函式即可
核心**之後11-16行,理解即可
#include
#include
#include
#include
using namespace std;
int n;
void
shellsort
(int
*a,int d)
for(
int i=
0; iintmain()
shellsort
(a,n/2)
;shellsort
(a,1);
}return0;
}
sdut資料結構上機實驗之順序查詢
資料結構上機實驗之順序查詢 time limit 1000ms memory limit 65536k 在乙個的序列裡,查詢元素是否存在,若存在輸出yes,不存在輸出no.本題多組資料,首先輸入乙個數字n,然後輸入n n 1000 個數,然後再輸入乙個查詢數字。若存在輸出yes,不存在輸出no.4 ...
OJ3403資料結構實驗之排序六 希爾排序
time limit 1000ms memory limit 65536k 我們已經學習了各種排序方法,知道在不同的情況下要選擇不同的排序演算法,以期達到最好的排序效率 對於待排序資料來說,若資料基本有序且記錄較少時,直接插入排序的效率是非常好的,希爾排序就是針對一組基本有序的少量資料記錄進行排序的...
資料結構實驗 雜湊表 SDUT
time limit 1000ms memory limit 65536k 有疑問?點這裡 在n個數中,找出出現次數最多那個數字,並且輸出出現的次數。如果有多個結果,輸出數字最小的那乙個。單組資料,第一行數字n 1 n 100000 接下來有n個數字,每個數字不超過100000000 出現次數最多的...