直接定址法的應用(hash雜湊的定義及整數雜湊)

2021-09-25 12:32:49 字數 840 閱讀 4082

給出n個正整數,再給出m個正整數,問這m個數中的每個數分別是否在n個數**現過,其中n,m≤10^5,且所有正整數均不超過10^5。例如n=5,m=3,n個正整數為,欲查詢的m個正整數為(7,4,2},於是後者中只有7和2在n個正整數**現過,而4是沒有出現過的。

第一行輸入兩個數字,分別表示n,m,第二行輸入n個數字,第三行輸入m個數字,中間以空格隔開

列印m行,每一行為yes或者no

5 38 3 7 6 2

7 4 2

yesno

yes1.以時間換空間,時間複雜度為o(n*m)

#include#define max 10010

int main(),m[max]=;

scanf("%d%d",&n,&m);

//輸入第乙個陣列

for(int i=0;i1.以間空換時間,時間複雜度為o(n+m)

#include#define max 10010

bool hashtable[max]=;

int main(),欲查詢的m個正整數為(7,4,2},7在n**現的一次,4在n**現的零次,2在n**現的一次)

程式**:

#include#define max 10010

int hashtable[max]=;

int main(){

int x,n,m;

scanf("%d%d",&n,&m);

for(int i=0;i執行結果:

3 雜湊函式設計 直接定址法

雜湊函式的設計原則 1.計算簡單 你說設計乙個演算法可以保證所有的關鍵字都不會產生衝突,但是這個演算法需要很複雜的計算,會耗費很多時間,這對於需要頻繁地查詢來說,就會大大降低查詢的效率了。因此雜湊函式的計算時間不應該超過其他查詢技術與關鍵字比較的時間。2.雜湊位址分布均勻 我們前面也提到衝突帶來的問...

雜湊表 Hash 的應用

hs 定義陣列 hs 定義hash表,使用雜湊表的鍵可以直接訪問對應的值,如 hs 王五 或者 hs.王五 的值為 75 hs 定義文字字串 1 hs 2張三 3男412歲 5 hash表的新建 修改 刪除 1 新建hash表 2 rs 3 rs45 rs 6 rs.name lily 7 rs.s...

開放定址法解決衝突的雜湊表

題目描述 找是否有兩片完全相同的雪花,雪花總數為 0 n 100000,判斷兩片雪花是否相同的標準為其中一片雪花的的六角陣列經過向左 右 迴圈移位後與另一片的六角陣列相同 pragma warning disable 4786 include include includeusing namespa...