雜湊查詢 資料結構

2021-08-20 17:55:52 字數 1220 閱讀 7537

#define _crt_secure_no_warnings

#include "iostream"

#include "stdlib.h"

#include "windows.h"

#include "iomanip"

using namespace std;

#define ok 1

#define error 0

#define m 18

#define p 16

typedef int keytype;

/*開放位址法處理衝突的雜湊對映

h(key)=key%p p為乙個質因子數

hi=(h(key)+di)%m i=1,2,...,k(k<=m),m為表長

*/typedef struct hashtable[m];

int hash(keytype key);//開放位址法處理衝突的對映

void createhashtable(hashtable ht,int n);//建立雜湊表,keys為元素集合,n為元素個數

int searchhash(hashtable ht, keytype key); //雜湊查詢

double asl(hashtable ht, int n);//求平均查詢長度,n為元素個數

void disphashtable(hashtable ht);

void inithashtable(hashtable ht);

int numsearch(hashtable ht,keytype key);

int main()

ht[j].key = x;//將x放入表中 }}

int searchhash(hashtable ht, keytype key)

} return -1;

}double asl(hashtable ht, int n)

} return (double)s / n;

}void disphashtable(hashtable ht)

void inithashtable(hashtable ht)

}int numsearch(hashtable ht, keytype key)

if (ht[i].key == 0)

return 0;

else

return s + 1;

}

資料結構查詢 雜湊查詢(雜湊查詢)

通常我們查詢資料都是通過乙個乙個地比較來進行,有一種方法,要尋找的資料與其在資料集中的位置存在一種對應的關係,通過這種關係就能找到資料的位置。這個對應關係成為雜湊函式 雜湊函式 因此建立的表為雜湊表 雜湊表 雜湊查詢是關鍵字與在資料集中的位置一一對應,通過這種對應關係能快速地找到資料,雜湊查詢中雜湊...

雜湊查詢 資料結構

假定乙個集合為s 集合長度為n 假定選取的雜湊函式為 h k k m 即用元素的 關鍵字k整除以雜湊表的長度m 假定k和m均為正整數,並且m n 取餘數作為儲存該元素的雜湊位址。h 18 18 13 5 h 75 75 13 10 h 60 60 13 8 h 43 43 13 4 h 54 54 ...

資料結構 雜湊查詢

為什麼要用雜湊查詢?什麼是雜湊查詢?解決衝突有哪些方法?如何評估查詢?雜湊函式如何設計?順序查詢 時間複雜度 o n 二分查詢 前提有序 時間複雜度 o logn 二叉搜尋樹 時間複雜度 o h h 是樹高,最好情況 h logn,最差 h n 二叉平衡樹 時間複雜度 o logn 如何資料量很大時...