線性搜尋
o(n)(引入標記後效率提公升數倍(第二種))
void linear(int s, int t, int ns, int nt)
else if(t[i]雜湊法
o(1)
重點是雜湊函式的構造,我
//雜湊函式
h1(key)
return key%m
h2(key)
return 1+(key%(m-1))
h(key, i)
return (h1(key)+i*h2(key))%m
insert(t, key)//使用雜湊函式插入該值,用i來解決衝突
i = 0
while true
j = h(key, i)
if t[j] == nil
t[j] = key
return j
else
i = i+1
search(t, key)//使用雜湊函式查詢該值(搜尋)
i = 0
while true
j = h(key, i)
if t[j] == key//找到該值
return j
else if t[j]==nil or i>=m//該位置處為空,說明不存在該值
return nil
else//衝突,即該位置出存的是其他值
i = i+1
stl部分bool cmp(int x, int y)
挑戰程式設計 演算法和資料結構 八皇后問題總結
一道八皇后問題相關問題 題目19.1鏈結8 queens problem 這道題給出已有幾個皇后放置的位置,然後讓你補全剩下的位置。自己的方法 我的方法實際上就是維護乙個棋盤矩陣,值為0時可以放置,為 1時表示該位置是皇后,大於0時不可放置,每當放置乙個皇后時就要將皇后可以到達的地點 1,當去除乙個...
演算法和資料結構
演算法和資料結構 演算法和資料結構 千絲萬縷的聯絡 縱觀各種演算法書籍,大多都是將演算法和資料結構作為乙個整體來講述。資料結構就是陣列 樹結構等儲存或表現物件資料的結構。將演算法和資料結構作為整體講述,是因為必須依照演算法中的常用操作選擇資料結構。例如,事先將資料儲存在適當的樹形結構中,大多數情況下...
演算法和資料結構
演算法 資料結構與演算法的關係是相互依賴不可分割的。演算法的定義 演算法是解決特定問題求解步驟的描述,在計算機中為指令的有限序列,並且每條指令表示乙個或多個操作。演算法的特性 有窮性 確定性 可行性 輸入 輸出。演算法設計的要求 正確性 可讀性 健壯性 高效率和低儲存量需求。演算法特性與演算法設計容...