hash表查詢的保留除數法

2021-10-22 21:32:13 字數 1470 閱讀 9719

#include

#include

/*1、確定原陣列

2、確定新陣列大小

新陣列大小=原陣列大小除以裝填因子向上取整

new_size = (int)ceil(n/a);

3、求最大質數

*/#define n 11

//陣列大小

#define a 0.75

//裝填因子

#define d 1

//開放位址法 跳躍數

extern

intgetmaxpri

(int num)

;//獲取小於等於num最大的質數

extern

intsearch_hash

(int new_arr,

int maxpri,

int new_size,

int data)

;int

main

(void);

int new_size =

(int

)ceil

(n/a)

;//15

printf

("新的陣列大小為:%d\n"

,new_size)

;int maxpri =

getmaxpri

(new_size)

;//獲取新陣列大小對應的最大質數

printf

("最大的質數:%d\n"

,maxpri)

;//定義的乙個新的陣列,然後全部賦值為-1

int new_arr[new_size]

;//new_size是乙個變數,在這裡不允許進行初始化操作

int i;

for(i=

0;i)//儲存操作

int loc;

for(i=

0;inew_arr[loc]

=arr[i];}

//對新的陣列進行 遍歷操作

for(i=

0;i)printf

("\n");

//查詢某一資料 是否在 新的陣列中

int data;

while(1

)else

}return0;

}/*查詢 返回位置(下標+1)

*/int

search_hash

(int new_arr,

int maxpri,

int new_size,

int data)

else

}return-1

;}/* 求最大質數: 大於1的自然數

資料只能夠被 自己和1 整除

*/int

getmaxpri

(int num)}if

(j == i)

}return-1

;}

Hash表 拉鍊法

拉鍊法建立hash表 hash.h ifndef hash h define hash h include using namespace std struct node string value node next typedef node hashnode const int mult 31 c...

線性探測 Hash表的建立 查詢

time limit 1000ms memory limit 65536kb submit statistic discuss problem description 根據給定的一系列整數關鍵字和素數p,用除留餘數法定義hash函式h key key p,將關鍵字對映到長度為p的雜湊表中,用線性探測...

雜湊表 Hash雜湊 的查詢技術

雜湊技術 在記錄的儲存位置和它的關鍵碼key之間建立乙個確定的對應關係h,使得每個關鍵字key和唯一的儲存位置h key 相對應。儲存記錄時,根據這個對應關係找到關鍵碼的對映位址,並按此位址儲存該記錄 查詢記錄時,根據這個對應關係找到待查關鍵碼的對映位址,並按此位址訪問該記錄,這種查詢技術就稱為雜湊...