[发明专利]哈希冲突处理方法及系统在审
申请号: | 202011018787.6 | 申请日: | 2020-09-24 |
公开(公告)号: | CN112148738A | 公开(公告)日: | 2020-12-29 |
发明(设计)人: | 赵子苍;李磊 | 申请(专利权)人: | 盛科网络(苏州)有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/2453;G06F3/06 |
代理公司: | 苏州三英知识产权代理有限公司 32412 | 代理人: | 周仁青 |
地址: | 215000 江苏省苏州市苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 冲突 处理 方法 系统 | ||
1.一种哈希冲突处理方法,其特征在于,所述方法包括:
S1、判断需添加数据对应的关键字是否出现哈希冲突;
S2、若是,则分别在多个哈希桶中计算关键字对应的哈希值,获取多个哈希桶中冲突的多条数据;
S3、选择一个哈希桶,将该哈希桶中冲突的一条数据搬移至另外的哈希桶中。
2.根据权利要求1所述的哈希冲突处理方法,其特征在于,所述步骤S3具体为:
S31、在待搬移的哈希桶中计算待搬移数据的哈希值,获取待搬移位置;
S32、判断待搬移位置是否存在数据,若否,则将冲突的一条数据搬移至待搬移的哈希桶中的待搬移位置。
3.根据权利要求2所述的哈希冲突处理方法,其特征在于,所述步骤S32还包括:
若待搬移位置存在数据,则重复步骤S3。
4.根据权利要求1所述的哈希冲突处理方法,其特征在于,所述方法具体为:
S1、判断需添加数据对应的关键字Key是否出现哈希冲突;
S2、若是,则分别在第一哈希桶和第二哈希桶中计算关键字Key对应的哈希值INDEX0和INDEX1,获取第一哈希桶和第二哈希桶中冲突的两条数据Key100和Key200;
S3、选择第一哈希桶,将第一哈希桶中冲突的数据Key100搬移至第二哈希桶中。
5.根据权利要求4所述的哈希冲突处理方法,其特征在于,所述步骤S3具体为:
S31、在第二哈希桶中计算待搬移数据Key100的哈希值F2(Key100)=INDEX100,获取待搬移位置INDEX100;
S32、判断待搬移位置INDEX100是否存在数据,若否,则将冲突数据Key100搬移至第二哈希桶中的待搬移位置INDEX100。
6.根据权利要求5所述的哈希冲突处理方法,其特征在于,所述步骤S32还包括:
若第二哈希桶中的待搬移位置INDEX100存在数据,则在第一哈希桶中计算INDEX100中数据Key101的哈希值F1(Key101)=INDEX101,并判断在第一哈希桶中INDEX101位置是否存在数据;
若否,则将数据Key101搬移到第一哈希桶中INDEX101位置,将数据Key100搬移到第二哈希桶中INDEX100位置;
若是,重复执行步骤S31~S32。
7.根据权利要求2所述的哈希冲突处理方法,其特征在于,所述步骤S3还包括:
将待搬移位置对应的关键字下发到哈希桶中冲突的一条数据对应的冲突位置中。
8.根据权利要求3或6所述的哈希冲突处理方法,其特征在于,所述方法还包括:
获取数据的搜索深度M;
判断搜索深度M是否达到搜索深度阈值M0,若否,则继续执行步骤S3,若是,则选择另外的哈希桶,将该哈希桶中冲突的一条数据搬移至另外的哈希桶中。
9.一种哈希冲突处理系统,其特征在于,所述系统包括:
哈希冲突判断模块,用于判断需添加数据对应的关键字是否出现哈希冲突;
哈希计算模块,用于在出现哈希冲突时分别在多个哈希桶中计算关键字对应的哈希值,获取多个哈希桶中冲突的多条数据;
数据搬移模块,用于选择一个哈希桶,并将该哈希桶中冲突的一条数据搬移至另外的哈希桶中。
10.根据权利要求9所述的哈希冲突处理系统,其特征在于,所述系统还包括:
搜索深度获取模块,用于获取数据的搜索深度M;
搜索深度判断模块,用于判断搜索深度M是否达到搜索深度阈值M0;
所述数据搬移模块还用于:
当搜索深度M达到搜索深度阈值M0时,选择另外的哈希桶,将该哈希桶中冲突的一条数据搬移至另外的哈希桶中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于盛科网络(苏州)有限公司,未经盛科网络(苏州)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011018787.6/1.html,转载请声明来源钻瓜专利网。