基于内存的散列表的构建方法、文本查找方法及相应装置的制造方法_4

文档序号:8258855阅读:来源:国知局
,将所述目标散列值存储至所述第一个节点中的信息域。
[0113]在上述技术方案的基础上,所述主散列函数和所述从散列函数为BKDRHash函数、APHash 函数、DJBHash 函数、JSHash 函数、RSHash 函数、SDBMHash 函数、PJffHash 函数、ELFHash函数和DEKHash函数中两种不同的散列函数;
[0114]所述设定的映射算法为质数取余法、平方取中法或折叠法。
[0115]上述产品可执行本发明任意实施例所提供的基于内存的散列表的构建方法,具备执行方法相应的功能模块和有益效果。
[0116]实施例六
[0117]图6是本发明实施例六提供的一种文本查找装置的结构示意图。参见图6,该装置的结构具体包括:
[0118]文本数据获取单元610,用于获取本次待查找的文本数据;
[0119]散列表入口地址确定单元620,用于使用预设的主散列函数,计算所述文本数据对应的主散列值,并根据设定的映射算法确定所述主散列值对应的散列表入口地址;
[0120]目标散列值生成单元630,用于使用预设的至少一个从散列函数,计算所述文本数据对应的从散列值,并基于所述从散列值得到目标散列值;
[0121]目标散列值查找单元640,用于遍历内存中构建的散列表中与所述散列表入口地址对应的单向链表,查找所述单向链表中是否存在信息域包含有所述目标散列值的节点。
[0122]上述产品可执行本发明任意实施例所提供的文本查找方法,具备执行方法相应的功能模块和有益效果。
[0123]注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
【主权项】
1.一种基于内存的散列表的构建方法,其特征在于,包括: 获取用于查找的文本数据; 使用预设的主散列函数,计算所述文本数据对应的主散列值,并根据设定的映射算法确定所述主散列值对应的散列表入口地址; 使用预设的至少一个从散列函数,计算所述文本数据对应的从散列值,并基于所述从散列值得到目标散列值; 将所述目标散列值存储至内存中与所述散列表入口地址对应的单向链表,以构建散列表。
2.根据权利要求1所述的方法,其特征在于,使用预设的至少一个从散列函数,计算所述文本数据对应的从散列值,并基于所述从散列值得到目标散列值,包括: 分别使用预设的多个从散列函数中的各个从散列函数,计算所述文本数据对应的从散列值; 将计算得到的各个从散列值合并在一起,生成目标散列值。
3.根据权利要求1所述的方法,其特征在于,将所述目标散列值存储至内存中与所述散列表入口地址对应的单向链表,以构建散列表,包括: 判断内存中所述散列表入口地址处,是否存储有用于指向与所述散列表入口地址对应的单向链表的表头指针; 如果是,则在所述单向链表的队尾插入一个新节点,将所述目标散列值存储至所述新节点中的信息域; 如果否,则创建用于指向与所述散列表入口地址对应的单向链表的表头指针,存储至所述散列表入口地址处,并在所述内存中的所述表头指针指向的存储位置处,创建所述单向链表的第一个节点,将所述目标散列值存储至所述第一个节点中的信息域。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述主散列函数和所述从散列函数为 BKDRHash 函数、APHash 函数、DJBHash 函数、JSHash 函数、RSHash 函数、SDBMHash函数、PJWHash函数、ELFHash函数和DEKHash函数中两种不同的散列函数; 所述设定的映射算法为质数取余法、平方取中法或折叠法。
5.一种文本查找方法,其特征在于,包括: 获取本次待查找的文本数据; 使用预设的主散列函数,计算所述文本数据对应的主散列值,并根据设定的映射算法确定所述主散列值对应的散列表入口地址; 使用预设的至少一个从散列函数,计算所述文本数据对应的从散列值,并基于所述从散列值得到目标散列值; 遍历内存中构建的散列表中与所述散列表入口地址对应的单向链表,查找所述单向链表中是否存在信息域包含有所述目标散列值的节点。
6.一种基于内存的散列表的构建装置,其特征在于,包括: 文本数据获取单元,用于获取用于查找的文本数据; 散列表入口地址确定单元,用于使用预设的主散列函数,计算所述文本数据对应的主散列值,并根据设定的映射算法确定所述主散列值对应的散列表入口地址; 目标散列值生成单元,用于使用预设的至少一个从散列函数,计算所述文本数据对应的从散列值,并基于所述从散列值得到目标散列值; 目标散列值存储单元,用于将所述目标散列值存储至内存中与所述散列表入口地址对应的单向链表,以构建散列表。
7.根据权利要求6所述的装置,其特征在于,所述目标散列值生成单元,具体用于: 分别使用预设的多个从散列函数中的各个从散列函数,计算所述文本数据对应的从散列值; 将计算得到的各个从散列值合并在一起,生成目标散列值。
8.根据权利要求6所述的装置,其特征在于,所述目标散列值存储单元,具体用于: 判断内存中所述散列表入口地址处,是否存储有用于指向与所述散列表入口地址对应的单向链表的表头指针; 如果是,则在所述单向链表的队尾插入一个新节点,将所述目标散列值存储至所述新节点中的信息域; 如果否,则创建用于指向与所述散列表入口地址对应的单向链表的表头指针,存储至所述散列表入口地址处,并在所述内存中的所述表头指针指向的存储位置处,创建所述单向链表的第一个节点,将所述目标散列值存储至所述第一个节点中的信息域。
9.根据权利要求6-8中任一项所述的装置,其特征在于,所述主散列函数和所述从散列函数为 BKDRHash 函数、APHash 函数、DJBHash 函数、JSHash 函数、RSHash 函数、SDBMHash函数、PJWHash函数、ELFHash函数和DEKHash函数中两种不同的散列函数; 所述设定的映射算法为质数取余法、平方取中法或折叠法。
10.一种文本查找装置,其特征在于,包括: 文本数据获取单元,用于获取本次待查找的文本数据; 散列表入口地址确定单元,用于使用预设的主散列函数,计算所述文本数据对应的主散列值,并根据设定的映射算法确定所述主散列值对应的散列表入口地址; 目标散列值生成单元,用于使用预设的至少一个从散列函数,计算所述文本数据对应的从散列值,并基于所述从散列值得到目标散列值; 目标散列值查找单元,用于遍历内存中构建的散列表中与所述散列表入口地址对应的单向链表,查找所述单向链表中是否存在信息域包含有所述目标散列值的节点。
【专利摘要】本发明实施例公开了基于内存的散列表的构建方法、文件查找方法及相应装置。其中,基于内存的散列表的构建方法包括:获取用于查找的文本数据;使用预设的主散列函数,计算文本数据对应的主散列值,并根据设定的映射算法确定主散列值对应的散列表入口地址;使用预设的至少一个从散列函数,计算文本数据对应的从散列值,并基于从散列值得到目标散列值;将目标散列值存储至内存中与散列表入口地址对应的单向链表,以构建散列表。本发明实施例提供的技术方案,能够更好的提高内存利用率,更加节约内存。
【IPC分类】G06F17-30, G06F12-08
【公开号】CN104572983
【申请号】CN201410856681
【发明人】肖冰
【申请人】北京锐安科技有限公司
【公开日】2015年4月29日
【申请日】2014年12月31日
当前第4页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1