雜湊表查詢實現

2021-08-01 21:17:06 字數 861 閱讀 9542

結構定義

#define hashsize 12

typedef struct

hashtable;

int m = 0; /* 雜湊表表長,全域性變數 */

初始化

/* 初始化雜湊表 */

status inithashtable(hashtable *h)

雜湊函式

/* 雜湊函式 */

int hash(int key)

插入

/* 插入關鍵字進雜湊表 */

void inserthash(hashtable *h, int key)

查詢

/* 雜湊表查詢關鍵字 */

status searchhash(hashtable h, int key, int

*addr)

}return success;

}

沒有衝突的情況下,雜湊查詢的時間複雜度是o(1)。

雜湊查詢的平均查詢長度取決於以下幾種因素:

1. 雜湊函式是否均勻

2. 處理衝突的方法

3. 雜湊表的裝填因子。所謂的裝填因子α=填入表中的記錄個數/雜湊表長度,α越大,產生衝突的可能性就越大。雜湊表的平均查詢長度取決於裝填因子的大小,而不是個數的多少,所以將雜湊錶開的比查詢範圍大一些,效能會更高。

查詢 雜湊表查詢(雜湊表)

1 雜湊表查詢定義 雜湊技術是在記錄的儲存位置和它的關鍵字之間建立乙個確定的對應關係f,使得每個關鍵字key對應乙個儲存位置f key 查詢時,根據這個確定的對應關係找到給定值key的對映f key 若查詢集合中存在這個記錄,則必定在f key 的位置上。採用雜湊技術將記錄儲存在一塊連續的儲存空間中...

雜湊表查詢演算法實現

define success 1 define hashsize 12 定義雜湊表長為陣列的長度 define nullkey 32768 typedef struct hahtable int m 0 雜湊表表長,全域性變數 有了結構的定義,我們可以對雜湊表進行初始化。初始化雜湊表 status ...

雜湊表(雜湊表)查詢

雜湊技術是在記錄的儲存位置和它的關鍵字之間建立起乙個確定的對應關係f,使每個關鍵字key對應乙個儲存位置f key f為雜湊函式,又稱雜湊函式。採用雜湊技術將記錄儲存在一塊連續的儲存空間中,這塊連續的儲存空間成為雜湊表 雜湊表。直接用key值的某個線性函式當位址。f key a key b 簡單,不...