#include #include #include #include #include #define slot_size 20000 //雜湊槽的大小
#define arr_size 100000 //動態關鍵字集合
#define min_size 0 //動態關鍵字集合的最小值
#define max_size 999
#define total_size 999999 //動態關鍵字集合的最大值
using namespace std;
struct node
;long* arr_set;
node link_hash[slot_size];
long suc_count=0;
long unsuc_count=0;
/** 除法雜湊函式
*/long hash_function(long key)
/** 產生不重複的自定義範圍的隨機數
*/long* ran_arr(long size, long min=0, long max=999)
/** 查詢函式
*/bool hash_find(long k)
} return true;}/*
* 刪除函式
*/bool hash_delete(long k)
else return false;
} pre_node->next=temp_node->next;
} return true;}/*
* 列印雜湊表的函式,可以設定列印的開始索引到結束索引
*/void print_hash(long start,long end)
cout<>arr_size;
arr_set=ran_arr(arr_size,min_size,max_size);//to generate arr_size from 1 to 1000 random number
//print_arr(arr_set,arr_size);
//初始化雜湊表的槽
for(long n=0;n>a;
return 0;
}
除法雜湊函式之雜湊值問題
演算法導論對於除法雜湊函式的描述。其中涉及到一小點數學問題 k mod m時,m之所以為素數時為了使得k在m所在的素數域上保持唯一性 根據尤拉定理和費馬小定理 雜湊函式 h k k mod m其中m的取值如是描述 應用除法雜湊法的時候,要避免選擇m的某些值,例如,m不應該為2 的冪 盡量取素數,並且...
雜湊衝突之雜湊法
雜湊碰撞 雜湊衝突 不同的key值經過雜湊函式hash key 處理以後可能產生相同的值雜湊位址,我們稱這種情況為雜湊衝突。任意的雜湊函式都不能避免產生衝突。閉雜湊法 線性探測 void insert1 int x pos if pos v.capacity s pos exist v pos x ...
雜湊拉鍊法(雜湊桶)
昨天寫了雜湊的開放定址法的部落格,今天我們要說的是拉鍊法,還有乙個名字叫雜湊桶。雜湊桶要做的就是,之前我們用的開放定址法,通過將資料對映到陣列中來實現雜湊。這裡每個陣列的位置只能存放乙個資料,如果衝突的話會繼續往下找找到空的位置然後放進去,但是其實大家都能感覺出來上乙個 很簡單,也很扯,感覺實現起來...