[发明专利]一种哈希表动态适应数据的方法及装置有效

专利信息
申请号: 200910108308.7 申请日: 2009-06-16
公开(公告)号: CN101582082A 公开(公告)日: 2009-11-18
发明(设计)人: 徐佳宏;程伯钦;蒋颁 申请(专利权)人: 深圳市茁壮网络股份有限公司
主分类号: G06F17/30 分类号: G06F17/30
代理公司: 深圳中一专利商标事务所 代理人: 张全文
地址: 518002广东省深圳市罗湖区沿河*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 哈希表 动态 适应 数据 方法 装置
【说明书】:

技术领域

发明属于数据存储领域,尤其涉及一种哈希表动态适应数据的方法及装置。

背景技术

在一般的线性表或树等数据结构中,在将数据存储至数据结构时,数据在数据结构中的相对位置是随机的,与数据的关键字之间不存在确定的关系。在数据结构中查找数据时,需将数据的关键字与数据结构中记录的关键字进行一系列的比较,才能查找到数据,查找的效率与比较次数密切相关,很多情况下,数据查找效率低。为了避免这种问题,现有技术一般采用哈希函数对需要存储的数据进行处理,得到哈希表,使数据的关键字与数据结构中的唯一的存储位置相对应,从而在查找数据时,不需要进行比较便可直接取得所查数据。

现有的哈希表存储区一般是定长的,即哈希表存储区的大小(Hash Base值)是固定的,预先根据数据的存储需求来设定合适的Hash Base值。当需要存储的数据增大时,则由于这种哈希表存储区太小导致产生较多的冲突,降低了哈希算法的效率。如果预先设置足够大的哈希表存储区,则当数据量较小时,将导致内存的浪费。

发明内容

本发明实施例的目的在于提供一种哈希表动态适应数据的方法,旨在解决现有的哈希表不能动态适应数据而造成的内存浪费或内存不足的问题。

本发明实施例是这样实现的,一种哈希表动态适应数据的方法,所述方法包括下述步骤:

A、将内存初始化为哈希表存储区、哈希项存储区和哈希关键值存储区,所述哈希表存储区用于存储哈希项的索引值,所述哈希项存储区用于存储数据的信息,所述数据的信息包括数据的真实地址和长度,所述哈希关键值存储区用于存储数据;

B、当检测到哈希表不能满足数据的存储需求时,保持哈希项存储区和哈希关键值存储区的数据不变,释放哈希表存储区,并重新分配能满足数据存储需求的新的哈希表存储区,采用重新分配哈希表存储区之前采用的哈希函数对哈希关键值存储区中存储的数据重新进行计算,得到新的哈希表存储区中的数据。

本发明实施例的另一目的在于提供一种哈希表动态适应数据的装置,所述装置包括:

内存初始化单元,用于将内存初始化为哈希表存储区、哈希项存储区和哈希关键值存储区,所述哈希表存储区用于存储哈希项的索引值,所述哈希项存储区用于存储数据的信息,所述数据的信息包括数据的真实地址和长度,所述哈希关键值存储区用于存储数据;

哈希表判断单元,用于判断哈希表是否满足数据存储需求;

存储区保持单元,用于在所述哈希表判断单元的结果为否时,保持哈希项存储区和哈希关键值存储区的数据不变;

哈希表重新分配单元,用于在所述哈希表判断单元的结果为否时,释放哈希表存储区,并重新分配能满足数据存储需求的新的哈希表存储区;

数据重计算单元,用于在所述哈希表判断单元的结果为否时,采用重新分配哈希表存储区之前采用的哈希函数对哈希关键值存储区中存储的数据重新进行计算,得到新的哈希表存储区中的数据。

在本发明实施例中,当检测到哈希表不能满足数据的存储需求时,先保持哈希项存储区和哈希关键值存储区的数据不变,再释放哈希表存储区,并重新分配能满足数据存储需求的新的哈希表存储区,采用相同的哈希函数对哈希关键值存储区中存储的数据重新进行计算,得到新的哈希表存储区的数据,从而使哈希表可以动态的适应任意数据,避免了由于哈希表存储区过大造成的内存浪费问题,由于哈希表存储区过小造成的哈希表存储区不能满足任意数据需求,从而导致冲突较多、降低哈希函数的效率的问题。

附图说明

图1是本发明实施例提供的哈希表动态适应数据的方法的实现流程图;

图2是本发明实施例提供的哈希表动态扩展前的内存的数据结构图;

图3是本发明实施例提供的哈希表动态扩展后的内存的数据结构图;

图4是本发明实施例提供的哈希表动态适应数据的装置的结构框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

在本发明实施例中,当检测到哈希表不能满足数据的存储需求时,先保持哈希项存储区和哈希关键值存储区的数据不变,再释放哈希表存储区,并重新分配能满足数据存储需求的新的哈希表存储区,采用相同的哈希函数对哈希关键值存储区中存储的数据重新进行计算,得到新的哈希表存储区的数据,从而使哈希表可以动态的适应任意数据,避免了由于哈希表存储区过大造成的内存浪费和哈希表存储区过小造成的哈希表存储区不能满足任意数据需求的问题。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市茁壮网络股份有限公司,未经深圳市茁壮网络股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/200910108308.7/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top