1. 直接定址法
h(k)=k+c (c≥0
2. 除留餘數法
h(k)=k mod p (mod為求餘運算,p≤m)
p最好取小於m的質數(素數)。
3. 數字分析法
通過分析可知,每個關鍵字從左到右的第1、2、3位和第6位取值較集中,不宜作為雜湊函式,剩餘的第4、5、7和8位取值較分散,可根據實際需要取其中的若干位作為雜湊位址。若取最後兩位作為雜湊位址,則雜湊位址的集合為。
d0=h(k)
di=(di-1+1) mod m (1≤i≤m-1)
n=11,m=13,除留餘數法的雜湊函式為h(k)=k mod p,p應為小於等於m的素數,假設p取值13
#define maxsize 100
#define nullkey -1
#define delkey -2
typedef int keytype;
typedef char* infotype;
typedef struct
hashtable[maxsize];
int seachht(hashtable ht, int p, keytype k)
if (ht[addr].key == k)
else
}
查詢 雜湊表查詢(雜湊表)
1 雜湊表查詢定義 雜湊技術是在記錄的儲存位置和它的關鍵字之間建立乙個確定的對應關係f,使得每個關鍵字key對應乙個儲存位置f key 查詢時,根據這個確定的對應關係找到給定值key的對映f key 若查詢集合中存在這個記錄,則必定在f key 的位置上。採用雜湊技術將記錄儲存在一塊連續的儲存空間中...
雜湊表(雜湊表)查詢
雜湊技術是在記錄的儲存位置和它的關鍵字之間建立起乙個確定的對應關係f,使每個關鍵字key對應乙個儲存位置f key f為雜湊函式,又稱雜湊函式。採用雜湊技術將記錄儲存在一塊連續的儲存空間中,這塊連續的儲存空間成為雜湊表 雜湊表。直接用key值的某個線性函式當位址。f key a key b 簡單,不...
雜湊表 雜湊表 查詢
直接定址法 數字分析法 平方取中法 平方取中法是將關鍵字平方之後取中間若干位數字作為雜湊位址。摺疊法摺疊法是將關鍵字從左到右分割成位數相等的幾部分,然後將這幾部分疊加求和,並按雜湊表表長取後幾體作為雜湊位址。除留餘數法 隨機數法 選擇乙個隨機數,取關鍵字的隨機函式值為它的雜湊位址。即 f key r...