[发明专利]一种增强型的哈希查找算法无效
申请号: | 200810236604.0 | 申请日: | 2008-11-28 |
公开(公告)号: | CN101414311A | 公开(公告)日: | 2009-04-22 |
发明(设计)人: | 李雪蕾;许泽文;杨彪 | 申请(专利权)人: | 武汉虹旭信息技术有限责任公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 武汉宇晨专利事务所 | 代理人: | 黄瑞棠 |
地址: | 430074湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 增强 查找 算法 | ||
技术领域
本发明涉及一种哈希(Hash)查找算法,尤其涉及一种增强型的哈希查找算法。
背景技术
哈希表是一种数据元素以散列方式组织的存储结构,在一块连续的存储空间中采用哈希法建立起来的符号表称为哈希表。其基本思想是:元素的存储位置与它的关键字间建立一个确定的对应关系,即设关键字key与存储位置间的对应关系为H(key),若用一维数组来存放数据元素,则H(key)就表示该数组的下标。这样就可以称函数H为哈希函数,H(key)为哈希地址,该一维数组就是哈希表。
哈西查找算法是一种高效的查找算法。哈西查找算法的时间复杂度为0(1),因此具有非常广泛的用途。
一般的哈西查找算法可以总结为F(key),通过H(key)计算元素的存储位置,如果有冲突,那么通过比较key这个集合中的确定元素,确定实际存储位置。
对于比较复杂的查找应用,需要使用多个关键字的多种组合进行查询。如果把全部关键字看做集合key,那么多种组合就是集合key的可变化的子集,这种查询可以看做根据一个关键字集合key的可变化的子集进行查询。F(key)这种查询算法就不太适用了。
比如在同一个应用中根据多个关键字多种组合查找TCP(传输控制协议)会话过程,有时候需要根据整个IP(互联网协议)五元组查找,有时候需要通过源IP+目的IP查找,有时需要根据目的IP+目的端口查找。如果要使用F(key)类型的查找算法,那么就必须为把IP五元组,源IP+目的IP,目的IP+目的端口看做多个key集合,并为这个数据元素集合建立多个hash表,大大增加了应用的复杂度。也就是说,对于查找条件为key的变化子集时,基于F(key)的哈西查找算法会导致实现比较复杂。
发明内容
本发明的目的在于克服现有哈希查找算法存在的缺点和不足,提供一种增强型的哈希查找算法,通过该算法,可以简单地实现多关键字多种组合的哈希查找。
本发明的目的是这样实现的:
本发明包括下列要点:
①将多关键字的全集组成集合key,根据多种组合确定type的值域;
②将F(key)增强为F(key,type),其中type指定查找类型;
③F(key,type)首先使用H(key)计算元素存储位置,当存在冲突时,通过type确定key的子集,通过比较key的子集,确定元素存储位置,完成hash查找。
本发明具有下列优点和积极效果:
①对多关键字可变组合的复杂hash查找提供了一种简单的实现方法。
②扩充了hash查找算法,将hash查找算法的关键字从key这个集合,扩充到了key的变化的子集。
③本发明适用于对多关键字可变组合的复杂hash查找。
附图说明
图1是本发明的查找流程图。
其中:
1—F(key)计算下标;
2—判断冲突链存在;
3—type确定key的子集;
4—根据key的子集查找冲突链;
5—返回找到的元素。
具体实施方式
下面结合附图和实施例详细说明:
本发明的要点③包括下列步骤:
①F(key)计算下标1;
②判断冲突链是否存在2,是则进入下一步骤;否则跳转到步骤⑤;
③type确定key的子集3;
④根据key的子集查找冲突链4;
⑤返回找到的元素5。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉虹旭信息技术有限责任公司,未经武汉虹旭信息技术有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810236604.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种降低劣质石脑油中硫的方法
- 下一篇:一种沸腾床渣油原料的预热方法