專利名稱:一種增強型的哈希查找算法的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種哈希(Hash)査找算法,尤其涉及一種增強型的哈希查找算法。
背景技術(shù):
哈希表是一種數(shù)據(jù)元素以散列方式組織的存儲結(jié)構(gòu),在一塊連續(xù)的存儲空間
中采用哈希法建立起來的符號表稱為哈希表。其基本思想是元素的存儲位置與
它的關(guān)鍵字間建立一個確定的對應(yīng)關(guān)系,即設(shè)關(guān)鍵字key與存儲位置間的對應(yīng)關(guān) 系為H(key),若用一維數(shù)組來存放數(shù)據(jù)元素,則H(key)就表示該數(shù)組的下標。 這樣就可以稱函數(shù)H為哈希函數(shù),H(key)為哈希地址,該一維數(shù)組就是哈希表。
哈西査找算法是一種高效的查找算法。哈西查找算法的時間復(fù)雜度為0(1), 因此具有非常廣泛的用途。
一般的哈西査找算法可以總結(jié)為F(key),通過H(key)計算元素的存儲位置, 如果有沖突,那么通過比較key這個集合中的確定元素,確定實際存儲位置。
對于比較復(fù)雜的查找應(yīng)用,需要使用多個關(guān)鍵字的多種組合進行查詢。如果 把全部關(guān)鍵字看做集合key,那么多種組合就是集合key的可變化的子集,這種 查詢可以看做根據(jù)一個關(guān)鍵字集合key的可變化的子集進行查詢。F (key)這種査 詢算法就不太適用了。
比如在同一個應(yīng)用中根據(jù)多個關(guān)鍵字多種組合査找TCP (傳輸控制協(xié)議)會 話過程,有時候需要根據(jù)整個IP (互聯(lián)網(wǎng)協(xié)議)五元組查找,有時候需要通過 源IP+目的IP查找,有時需要根據(jù)目的IP+目的端口查找。如果要使用F(key) 類型的査找算法,那么就必須為把IP五元組,源IP+目的IP,目的IP+目的端 口看做多個key集合,并為這個數(shù)據(jù)元素集合建立多個hash表,大大增加了應(yīng) 用的復(fù)雜度。也就是說,對于査找條件為key的變化子集時,基于F(key)的哈西査找算法會導(dǎo)致實現(xiàn)比較復(fù)雜。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服現(xiàn)有哈希査找算法存在的缺點和不足,提供一種增強 型的哈希査找算法,通過該算法,可以簡單地實現(xiàn)多關(guān)鍵字多種組合的哈希査找。 本發(fā)明的目的是這樣實現(xiàn)的 本發(fā)明包括下列要點
① 將多關(guān)鍵字的全集組成集合key,根據(jù)多種組合確定type的值域;
② 將F(key)增強為F (key, type),其中type指定查找類型;
◎F (key, type)首先使用H(key)計算元素存儲位置,當存在沖突時,通過 type確定key的子集,通過比較key的子集,確定元素存儲位置,完成hash査 找。
本發(fā)明具有下列優(yōu)點和積極效果
① 對多關(guān)鍵字可變組合的復(fù)雜hash査找提供了一種簡單的實現(xiàn)方法。
② 擴充了 hash査找算法,將hash査找算法的關(guān)鍵字從key這個集合,擴充 到了key的變化的子集。
③ 本發(fā)明適用于對多關(guān)鍵字可變組合的復(fù)雜hash查找。
圖l是本發(fā)明的査找流程圖。 其中.-
l一F(key)計算下標;
2— 判斷沖突鏈存在;
3— type確定key的子集; 4一根據(jù)key的子集查找沖突鏈; 5—返回找到的元素。
具體實施例方式
下面結(jié)合附圖和實施例詳細說明本發(fā)明的要點③包括下列步驟
① F(key)計算下標l;
② 判斷沖突鏈是否存在2,是則進入下一步驟;否則跳轉(zhuǎn)到步驟⑤; ◎type確定key的子集3;
④ 根據(jù)key的子集査找沖突鏈4;
⑤ 返回找到的元素5。
權(quán)利要求
1、一種增強型的哈希查找算法,其特征在于包括下列要點①將多關(guān)鍵字的全集組成集合key,根據(jù)多種組合確定type的值域;②將F(key)增強為F(key,type),其中type指定查找類型;③F(key,type)首先使用H(key)計算元素存儲位置,當存在沖突時,通過type確定key的子集,通過比較key的子集,確定元素存儲位置,完成hash查找。
2、 按權(quán)利要求1所述的一種增強型的哈希査找算法,其特征在于要點③包 括下列步驟① F(key)計算下標(1);② 判斷沖突鏈是否存在(2),是則進入下一步驟;否則跳轉(zhuǎn)到步驟⑤;③ type確定key的子集(3); 根據(jù)key的子集查找沖突鏈(4); ⑤返回找到的元素(5)。
全文摘要
本發(fā)明公開了一種增強型的哈希(Hash)查找算法,涉及一種哈希查找算法。本發(fā)明包括下列步驟①將多關(guān)鍵字的全集組成集合key,根據(jù)多種組合確定type的值域;②將F(key)增強為F(key,type),其中type指定查找類型;③F(key,type)首先使用H(key)計算元素存儲位置,當存在沖突時,通過type確定key的子集,通過比較key的子集,確定元素存儲位置,完成hash查找。本發(fā)明對多關(guān)鍵字可變組合的復(fù)雜hash查找提供了一種簡單的實現(xiàn)方法;擴充了hash查找算法,將hash查找算法的關(guān)鍵字從key這個集合,擴充到了key的變化的子集;適用于多關(guān)鍵字可變組合的HASH查找。
文檔編號G06F17/30GK101414311SQ20081023660
公開日2009年4月22日 申請日期2008年11月28日 優(yōu)先權(quán)日2008年11月28日
發(fā)明者李雪蕾, 彪 楊, 許澤文 申請人:武漢虹旭信息技術(shù)有限責任公司