买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:广东海洋大学
摘要:本发明公开了一种自带验证功能的大型数据链表的构建方法及构建装置,涉及计算机技术领域,包括:根据设备内存大小,将字符串及其后缀数组分块,递归使用外存分块归纳排序对S*类型后缀排序,计算其升序和降序指纹值;采用相同的排序方法,根据S*类型后缀的顺序,将L类型后缀排序至对应的后缀桶块,将L*类型后缀保存至外存;根据L*类型后缀的顺序,将S类型后缀排序至对应的后缀桶块,计算降序S*类型后缀的指纹值;采用多路归并排序,从L和S类型后缀桶块按字典序获取各后缀,计算后缀的指针域和后缀链表块,以及升序S*类型后缀的指纹值;对后缀链表块按位置进行排序后合并,生成最终链表,最后比较升序和降序指纹值给出验证结果。
主权项:1.一种自带验证功能的大型数据链表的构建方法,其特征在于,包括:从外存从右至左读取字符串T,通过比较相邻字符的字典序,检索S*类型字符出现的位置,根据设备内存大小,以S*类型字符为分隔符,将字符串T在逻辑上切分为多个分块;扫描字符串T,统计各个后缀桶中元素的个数,并根据设备内存大小,将后缀桶切分为不同的后缀桶块,各块在内存中完成归纳排序;所述后缀桶块是由连续的后缀桶组成,保存在外存上的数据分块;所述后缀桶是由后缀数组中相同首字母的后缀组成;递归调用外存分块归纳排序,计算字符串T的S*类型后缀的顺序,使用指纹函数迭代计算升序和降序S*类型后缀的指纹值fp1和fp2;根据已有序的S*类型后缀,计算字符串T各个分块的L类型后缀的前继字符和S类型后缀的前继字符,并顺序保存至字符串T各个分块对应的L类型前继分块和S类型前继分块;所述L类型前继分块和S类型前继分块是由L类型后缀和S类型后缀的前继字符组成,分别保存在外存的数据分块;遍历的S*类型后缀和L类型前继分块,采用小顶堆,以后缀首字符和顺序号为排序关键字,将L类型后缀排序至其所属的后缀桶块,将L*类型后缀顺序保存至外存;所述将L类型后缀排序至其所属的后缀桶块的过程:采用小顶堆HP1,以后缀首字符和顺序号为排序关键字,依次读取堆顶后缀,并写至其对应的L类型后缀桶块,包含以下步骤:(1)初始化小顶堆HP1为空,顺序号id=0,将当前最小的L类型后缀桶块读至内存数组Y中,其元素为二元组chr,pos,chr和pos分别表示后缀的首字符和位置,对数组Y进行稳定升序排序;(2)升序遍历数组Y和S*类型后缀的各个后缀桶,对于同一个后缀桶,依次遍历S*类型后缀桶、数组Y和小顶堆HP1,对于当前被遍历后缀e=chr,pos,如果它的前继是L类型,则从它对应的前继分块读取其前继字符chr0;若该前继属于当前后缀桶块,将前继元组e0=chr0,pos-1,id++压入HP1中,否则将前继元组e0写至其对应的L类型后缀桶块;如果后缀e的前继为S类型,将后缀e追加到L*类型后缀序列LStar的尾部;(3)继续对下一个L类型后缀桶块执行上述步骤,直至所有L类型桶块被遍历完成;降序遍历L*类型后缀和S类型前继分块,采用大顶堆,以后缀首字符和顺序号为排序关键字,将S类型后缀排序至其所属的后缀桶块,使用指纹函数迭代计算降序S*类型后缀的指纹值fp3;所述将S类型后缀排序至其所属的后缀桶块的过程:采用大顶堆HP2,以后缀首字符和顺序号为排序关键字,依次读取堆顶后缀,并写至其对应的S类型后缀桶块,包含以下步骤:(1)初始化大顶堆HP2为空,顺序号id=n,将当前最大的S类型后缀桶块读至内存数组Y中,其元素为二元组chr,pos,对数组Y进行稳定降序排序;(2)降序遍历数组Y和L*类型后缀序列LStar的各个后缀桶,对于同一个后缀桶,依次遍历数组Y、L*类型后缀序列LStar和大顶堆HP2,对于当前被遍历后缀e=chr,pos,如果它的前继为S类型,则从它对应的前继分块读取其前继字符chr0;若该前继属于当前后缀桶块,将前继元组e0=chr0,pos-1,id--压入大顶堆HP2中,否则将前继元组e0写至其对应的S类型后缀桶块;如果后缀e的前继为L类型,使用Karp-Rabin指纹函数迭代计算降序S*类型后缀的指纹值fp3;(3)继续对下一个S类型后缀桶块执行上述步骤,直至所有S类型桶块被遍历完成;采用多路归并排序,按照字典序从L和S类型后缀桶块依次获取各后缀,并根据相邻后缀的位置信息,计算后缀的指针域及其所属的后缀链表块,接着对后缀链表块按照位置排序,合并各个后缀链表块,生成最终链表,期间使用指纹函数迭代计算升序S*类型后缀的指纹值fp4;所述后缀的指针域和后缀链表块的计算过程:假设后缀链表块长度为K,e1和e2和e3为依次取出的3个后缀,当取到e2时,将e1的指针域设置为e2.pos,构造e1的二元组e1.pos,e2.pos,并将其保存至第e1.posK个后缀链表块,其中e1.pos和e2.pos分别为e1和e2的位置;当取到e3时,计算e2的指针域和后缀链表块;依次类推,直至取到最后一个后缀,将其指针域设置为0,指向链表头;所述合并各个后缀链表块生成最终链表的过程,首先对后缀链表块中的后缀按位置排序,然后从左至右依次合并各后缀链表块,得到最终链表;比较S*类型后缀升序指纹值fp1和fp4和S*类型后缀降序指纹值fp2和fp3,给出最终生成后缀链表正确性验证结果。
全文数据:
权利要求:
百度查询: 广东海洋大学 一种自带验证功能的大型数据链表的构建方法及构建装置
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。