資料結構實驗之查詢七:線性之雜湊表
time limit: 1000ms memory limit: 65536kb
problem description
根據給定的一系列整數關鍵字和素數p,用除留餘數法定義hash函式h(key)=key%p,將關鍵字對映到長度為p的雜湊表中,用線性探測法解決衝突。重複關鍵字放在hash表中的同一位置。input
連續輸入多組資料,每組輸入資料第一行為兩個正整數n(n <= 1000)和p(p >= n的最小素數),n是關鍵字總數,p是hash表長度,第2行給出n個正整數關鍵字,數字間以空格間隔。output
輸出每個關鍵字在hash表中的位置,以空格間隔。注意最後乙個數字後面不要有空格。example input
5 5example output21 21 21 21 21
4 5
24 15 61 88
4 5
24 39 61 15
5 5
24 39 61 15 39
1 1 1 1 1**:4 0 1 3
4 0 1 2
4 0 1 2 0
#include
#include
#include
int ans[1015];//存元素在雜湊表中的位置
int a[1015];
int main()
if(a[k] == -1)//代表位置是空的
else
if(a[k] == num)//代表數一樣
}for(i = 0; i < top; i++)
}return
0;}
雜湊 線性探測法
time limit 1 secs,memory limit 256 mb 使用線性探測 法 linear probin g 可以解決雜湊中的衝突問題,其基本思想是 設雜湊函式為 h key d,並且假定雜湊的儲存結構是迴圈陣列 則當衝突發生時 繼續探測 d 1,d 2 直到衝突得到解決 例如,現有...
雜湊表 開放位址法之線性探測
雜湊表 優點 速度快 插入和查詢 缺點 基於陣列,不能有序的遍歷 鍵值對儲存方式,通過鍵來訪問值 hashmap.put key value 線性探測屬於開放位址法 線性探測插入演示 陣列最初狀態 在這組資料中要插入83 先對要插入資料雜湊化,雜湊化後的資料就是陣列下標,這裡雜湊化後的資料是23 然...
雜湊(2)線性探測法和雙重雜湊法
接上篇 雜湊的簡要描述和鏈位址法 解決雜湊衝突的方法 如果我們能夠 將要存入表中元素的數目,而且我們有足夠的記憶體空間可以容納帶有空閒空間的所有關鍵字,那麼使用鏈位址法是不值得的。我們依靠空的儲存空間解決衝突 設計表長m大於元素數目n,開放位址法,最簡單的開放位址法是線性探測法 該符號表的實現將元素...