不得不承認雜湊表是一種效率很高的查詢方法,理想的情況下它的時間複雜度為o(1),或者為乙個常數。
當然,雜湊查詢的高效率也是有一定代價的,具體來說它是一種以時間換空間的查詢演算法,雜湊表的構造需要合適的雜湊函式,在構造雜湊表時要分配跟多的空間來給記錄,在記錄發生衝突的時候,我們就需要一些衝突的處理方法。雜湊表的構造過程也會因此更加複雜。
下面是c語言**實現
#include
#include
typedef
int elemtype;
typedef
struct hnodehashnode;
typedef
structhashtable;
hashtable *initializetable(int hash_size)
return h;
}int hashfunction(elemtype key,int hash_size)
hashnode* find(elemtype key,hashtable *h)
return
null;
} }void insert(elemtype key,hashtable *h)
else
//記錄相同,則插入分表中
h->count++;
}int main()
; hashtable *h;
h = initializetable(13);
int i;
for(i=0;i<13; i++)
insert(a[i],h);
printf("請輸入乙個數:\n");
int key;
scanf("%d",&key);
hashnode* p = find(key,h);
if(null == p)
printf("未找到\n");
else
printf("找到了: %d\n",p->data);
return
0;}
查詢 雜湊表查詢(雜湊表)
1 雜湊表查詢定義 雜湊技術是在記錄的儲存位置和它的關鍵字之間建立乙個確定的對應關係f,使得每個關鍵字key對應乙個儲存位置f key 查詢時,根據這個確定的對應關係找到給定值key的對映f key 若查詢集合中存在這個記錄,則必定在f key 的位置上。採用雜湊技術將記錄儲存在一塊連續的儲存空間中...
雜湊表(雜湊表)查詢
雜湊技術是在記錄的儲存位置和它的關鍵字之間建立起乙個確定的對應關係f,使每個關鍵字key對應乙個儲存位置f key f為雜湊函式,又稱雜湊函式。採用雜湊技術將記錄儲存在一塊連續的儲存空間中,這塊連續的儲存空間成為雜湊表 雜湊表。直接用key值的某個線性函式當位址。f key a key b 簡單,不...
雜湊表 雜湊表 查詢
直接定址法 數字分析法 平方取中法 平方取中法是將關鍵字平方之後取中間若干位數字作為雜湊位址。摺疊法摺疊法是將關鍵字從左到右分割成位數相等的幾部分,然後將這幾部分疊加求和,並按雜湊表表長取後幾體作為雜湊位址。除留餘數法 隨機數法 選擇乙個隨機數,取關鍵字的隨機函式值為它的雜湊位址。即 f key r...