挑戰程式設計 演算法和資料結構 搜尋(包括STL)

2021-09-10 13:30:40 字數 786 閱讀 7708

線性搜尋

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,當去除乙個...

演算法和資料結構

演算法和資料結構 演算法和資料結構 千絲萬縷的聯絡 縱觀各種演算法書籍,大多都是將演算法和資料結構作為乙個整體來講述。資料結構就是陣列 樹結構等儲存或表現物件資料的結構。將演算法和資料結構作為整體講述,是因為必須依照演算法中的常用操作選擇資料結構。例如,事先將資料儲存在適當的樹形結構中,大多數情況下...

演算法和資料結構

演算法 資料結構與演算法的關係是相互依賴不可分割的。演算法的定義 演算法是解決特定問題求解步驟的描述,在計算機中為指令的有限序列,並且每條指令表示乙個或多個操作。演算法的特性 有窮性 確定性 可行性 輸入 輸出。演算法設計的要求 正確性 可讀性 健壯性 高效率和低儲存量需求。演算法特性與演算法設計容...