[发明专利]一种哈希表创建方法及系统、计算设备及存储介质有效
| 申请号: | 201910169079.3 | 申请日: | 2019-03-06 |
| 公开(公告)号: | CN109885576B | 公开(公告)日: | 2020-12-01 |
| 发明(设计)人: | 李哈迪;杨林 | 申请(专利权)人: | 珠海金山网络游戏科技有限公司 |
| 主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/903 |
| 代理公司: | 北京智信禾专利代理有限公司 11637 | 代理人: | 吴肖肖 |
| 地址: | 广东省珠海市高新区唐家湾镇前岛环路325号102室、20*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 哈希表 创建 方法 系统 计算 设备 存储 介质 | ||
1.一种哈希表创建的方法,其特征在于,包括:
基于设定的哈希算法对目标字符串分别进行初始哈希运算,得到各个字符串对应的初始哈希值;
确定目标字符串的数量M及存在冲突的初始哈希值的数量N,根据M和N确定目标字符串的初始哈希值的冲突率y,其中M和N为正整数;
设置哈希值冲突率的容忍度阈值p;
根据所述容忍度阈值p和所述冲突率y确定运算参数的个数n,n为正整数;
选取n个不相等的正整数作为所述哈希算法的运算参数;
基于所述运算参数分别对目标字符串进行哈希运算,得到目标字符串与运算参数对应的运算哈希值;
根据所述初始哈希值与所述运算哈希值构建树表示,并基于所述树表示创建对应的哈希表,以用于确定待查询的目标字符串在所述哈希表中的存储地址。
2.如权利要求1所述的方法,其特征在于,基于所述运算参数分别对目标字符串进行哈希运算,得到各目标字符串与运算参数对应的运算哈希值包括:
基于每个运算参数对目标字符串进行哈希运算,得到目标字符串与所述运算参数对应的运算哈希值。
3.如权利要求1所述的方法,其特征在于,根据所述初始哈希值与所述运算哈希值构建树表示包括:
根据目标字符串的初始哈希值为索引在第i个树表示中查找与所述索引对应的节点,i∈[1,n+1],n表示运算参数的总数,i和n均为正整数;
若在第i个树表示中未查找到相应的节点,则以所述初始哈希值和运算哈
希值为关键字创建节点,并将所述字符串的首地址添加到所创建节点的节点值中;
若在第i个树表示中查找到相应的节点,则i的值增加1,判断i与n+1的大小关系;
若i小于等于n+1,则继续执行根据目标字符串的初始哈希值为索引在第i个树表示中查找与所述索引对应的节点步骤;
若i大于n+1,则树表示的构建过程结束。
4.如权利要求1所述的方法,其特征在于,所述基于所述树表示创建对应的哈希表包括:
完成一次树表示的遍历;
根据遍历得到的所述树表示中各节点的信息创建与所述树表示对应的哈希表。
5.如权利要求4所述的方法,其特征在于,所述根据遍历得到的所述树
表示中各节点的信息创建与所述树表示对应的哈希表包括:
根据所述目标字符串的初始哈希值确定哈希表项索引;
根据所述哈希表项索引从第i个哈希表中查询对应的哈希表项h,作为当前哈希表项,i∈[1,n+1],h∈[1,L],L表示哈希表的长度,n为运算参数的总数,i、L和h均为正整数;
判断所述哈希表项h的内容是否为空;
当所述哈希表项h内容为空时,将第i个树表示节点中目标字符串的初始哈希值、运算哈希值和字符串首地址添加到当前哈希表项的表项中;
当所述哈希表项h内容不为空时,则从所述第i个哈希表中查询对应的哈希表项h=h+1,作为当前哈希表项,继续执行判断所述哈希表项h的内容是否为空的步骤。
6.如权利要求1至5中任意一项所述的方法,其特征在于,所述树表示包括红黑树。
7.如权利要求1所述的方法,其特征在于,还包括:
接收字符串地址查询请求,所述查询请求中携带有待查询的目标字符串;
基于设定的哈希算法及运算参数对所述待查询的目标字符串进行哈希运算,得到待查询的目标字符串的初始哈希值及运算哈希值;
获取创建完成的哈希表;
根据待查询的目标字符串的初始哈希值及运算哈希值对哈希表进行检索,确定所述待查询的目标字符串的存储地址。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于珠海金山网络游戏科技有限公司,未经珠海金山网络游戏科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910169079.3/1.html,转载请声明来源钻瓜专利网。





