亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種高效的靜態(tài)哈希表實現(xiàn)方法及系統(tǒng)與流程

文檔序號:12598746閱讀:來源:國知局

技術(shù)特征:

1.一種高效的靜態(tài)哈希表實現(xiàn)方法,其特征在于,包括以下步驟:

1)設(shè)定哈希桶大小hash_bit,生成多個數(shù)據(jù)對,將key[i]和value[i]對應(yīng)于關(guān)鍵字和值;

2)根據(jù)key[i]值,利用rank操作構(gòu)建哈希表,并計算C表和D表,其中C表表示存儲固定長度r的rank操作,D表表示存儲固定長度s的rank操作;

3)根據(jù)C表和D表計算rank(h),其中h=key mod(hash_bits),并根據(jù)rank(h)的值存儲相應(yīng)的key[i]和value[i];

4)根據(jù)所要查詢的值key判斷哈希表中是否存在該元素,若存在則在對應(yīng)存儲位置查詢并返回value值,否則訪問失??;

5)根據(jù)步驟4)所得的結(jié)果,返回結(jié)果信息。

2.如權(quán)利要求1所述的方法,其特征在于,步驟3)采用以下步驟實現(xiàn)基于rank操作的哈希表存儲過程:

3-1)將預(yù)處理的數(shù)據(jù)分為key和value數(shù)組,key[i]、value[i]與關(guān)鍵字、鍵值相對應(yīng);

3-2)預(yù)先一次性導(dǎo)入key值至bitmap中,定義哈希桶的數(shù)量為hash_bit,按照時間度O(1)的rank操作記錄key數(shù)組的數(shù)據(jù)內(nèi)容;對key與hash_bit取模得到h,確保落在哈希桶內(nèi),然后將h存儲在哈希桶對應(yīng)位置上,按照h值的大小,記錄所有key值的相應(yīng)位置信息;

3-3)存儲計算C數(shù)組和D數(shù)組,利用rank操作從哈希表CB[0]開始記錄C數(shù)組和D數(shù)組的相應(yīng)信息;

3-4)利用C表和D表信息,計算每個key值對應(yīng)的rank值;

3-5)利用rank值記錄每個哈希桶內(nèi)元素個數(shù),按照哈希表C的順序疊加記錄,利用rank值作為順序存儲key、value值;

3-6)存儲key、value值到數(shù)組中。

3.如權(quán)利要求2所述的方法,其特征在于,步驟3-2)中,hash_bit的值為CB表的大小clength和28的乘積,對每個哈希桶內(nèi)分配4個大小的bitmap,每個bitmap存儲64位的數(shù)據(jù),初始化設(shè)置為各位均為0。

4.如權(quán)利要求3所述的方法,其特征在于,步驟3-2)按照如下公式記錄h的位置,直到所有的key值均依次記錄位置:

q=h&255,

CB[h>>8].bitmap[q>>6]|=(1<<(q&63))。

5.如權(quán)利要求2所述的方法,其特征在于,步驟3-5)中,在存儲key-value對時,若不同的key有同一rank值,則首要順序按照rank值大小順序存儲,次要順序按照rank值相同依次存儲。

6.如權(quán)利要求1所述的方法,其特征在于,步驟4)采用以下步驟實現(xiàn)基于rank操作的哈希表訪問過程:

4-1)對要查詢的數(shù)據(jù)key與hash_bit取模得到h;

4-2)計算q=h&255,判斷CB[h>>8].bitmap[q>>6]和(1<<(q&63))做與運算是否為1,即在原來哈希桶內(nèi)是否有key值;若此步判斷為0,則原哈希表內(nèi)沒有該key值,查詢失?。?/p>

若此步判斷為1,則原哈希表內(nèi)有該key值,則需要找到value值;

4-3)為了防止哈希沖突,即原哈希表內(nèi)該位置有兩個及以上的關(guān)鍵字值命中,則在該哈希桶內(nèi)依次判斷是否含有查詢數(shù)據(jù)key,若包含,返回value值,若不包含,查詢下一個關(guān)鍵字,直至關(guān)鍵字為空,查詢失敗。

7.一種高效的靜態(tài)哈希表實現(xiàn)系統(tǒng),其特征在于,包括:

系統(tǒng)預(yù)處理部件,用于設(shè)定哈希桶大小hash_bit,在生成多個數(shù)據(jù)對,將key[i]和value[i]對應(yīng)于關(guān)鍵字和值;

構(gòu)建哈希表部件,用于根據(jù)key[i]值,利用rank操作構(gòu)建哈希表,并計算C表和D表,其中C表表示存儲固定長度r的rank操作,D表表示存儲固定長度s的rank操作;

存儲信息部件,用于根據(jù)C表和D表計算rank(h),其中h=key mod(hash_bits),并根據(jù)rank(h)的值存儲相應(yīng)的key[i]和value[i];

訪問信息部件,用于根據(jù)所要查詢的值key判斷哈希表中是否存在該元素,若存在則在對應(yīng)存儲位置查詢并返回value值,否則訪問失?。?/p>

返回信息部件,用于根據(jù)訪問信息部件所得的結(jié)果,返回結(jié)果信息。

8.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述存儲信息部件采用以下步驟實現(xiàn)基于rank操作的哈希表存儲過程:

1)將預(yù)處理的數(shù)據(jù)分為key和value數(shù)組,key[i]、value[i]與關(guān)鍵字、鍵值相對應(yīng);

2)預(yù)先一次性導(dǎo)入key值至bitmap中,定義哈希桶的數(shù)量為hash_bit,按照時間度O(1)的rank操作記錄key數(shù)組的數(shù)據(jù)內(nèi)容;對key與hash_bit取模得到h,確保落在哈希桶內(nèi),然后將h存儲在哈希桶對應(yīng)位置上,按照h值的大小,記錄所有key值的相應(yīng)位置信息;

3)存儲計算C數(shù)組和D數(shù)組,利用rank操作從哈希表CB[0]開始記錄C數(shù)組和D數(shù)組的相應(yīng)信息;

4)利用C表和D表信息,計算每個key值對應(yīng)的rank值;

5)利用rank值記錄每個哈希桶內(nèi)元素個數(shù),按照哈希表C的順序疊加記錄,利用rank值作為順序存儲key、value值;

6)存儲key、value值到數(shù)組中。

9.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述訪問信息部件采用以下步驟實現(xiàn)基于rank操作的哈希表訪問過程:

1)對要查詢的數(shù)據(jù)key與hash_bit取模得到h;

2)計算q=h&255,判斷CB[h>>8].bitmap[q>>6]和(1<<(q&63))做與運算是否為1,即在原來哈希桶內(nèi)是否有key值;若此步判斷為0,則原哈希表內(nèi)沒有該key值,查詢失??;若此步判斷為1,則原哈希表內(nèi)有該key值,則需要找到value值;

3)為了防止哈希沖突,即原哈希表內(nèi)該位置有兩個及以上的關(guān)鍵字值命中,則在該哈希桶內(nèi)依次判斷是否含有查詢數(shù)據(jù)key,若包含,返回value值,若不包含,查詢下一個關(guān)鍵字,直至關(guān)鍵字為空,查詢失敗。

當(dāng)前第2頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1