[发明专利]一种后缀数组和最长公共前缀的正确性验证方法及系统有效
申请号: | 201710183737.5 | 申请日: | 2017-03-24 |
公开(公告)号: | CN107015952B | 公开(公告)日: | 2020-08-18 |
发明(设计)人: | 韩凌波;农革;吴裔 | 申请(专利权)人: | 广东顺德中山大学卡内基梅隆大学国际联合研究院;中山大学 |
主分类号: | G06F40/194 | 分类号: | G06F40/194 |
代理公司: | 广州粤高专利商标代理有限公司 44102 | 代理人: | 林丽明 |
地址: | 528300 广东省佛山市顺德区大良*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 后缀 数组 最长 公共 前缀 正确性 验证 方法 系统 | ||
本发明涉及一种后缀数组和最长公共前缀的正确性验证方法及系统。该方法包括:从右向左扫描一遍T,按照后缀类型定义比较字符T[i]及其后继字符T[i+1]的大小,计算T的字符T[i]和后缀suf(T,i)的类型,记录于t[i]中;将SA1和LCPA1中的元素初始化为‑1。从左到右扫描一遍SA,根据数组t找出SA中所有LMS后缀及其LCP值,分别依次记录在SA1和LCPA1中;根据字符串T、数组t、SA1和LCPA1,对SA1中相邻LMS后缀及其LCP值进行正确性验证;根据字符串T、数组t、B、C、SA1和LCPA1,归纳排序T的L型后缀及其LCP值;根据字符串T、数组t、B、C、SA1和LCPA1,归纳排序T的S型后缀及其LCP值;顺序扫描SA、SA1、LCPA和LCPA1一次,比较SA与SA1和LCPA与LCPA1是否相同,如果两组比较全部相同则T的SA和LCPA正确。
技术领域
本发明涉及数组正确性验证领域,更具体地,涉及一种后缀数组和最长公共前缀的正确性验证方法及系统。
背景技术
后缀数组SA为任意给定一个字符串T,从T的任意位置开始至其结尾的所有字符组成的字符串称为T的后缀。显然,长度为n的字符串包含n个后缀,对这n个后缀按字典顺序排序,并将其地址保存在一个整型数组中,该数组则称为字符串的后缀数组。最长公共前缀是后缀数组中相邻的两个后缀之间公共前缀的字符数。长度为n的字符串对应的最长公共前缀数组LCPA长度也为n,LCPA第一个元素为0,从第二个元素开始依次保存n个后缀对应的n-1个LCP值。后缀数组SA和最长公共前缀数组LCPA二者结合起来可以实现数据的全文索引,广泛应用于字符串处理、数据压缩、模式匹配、基因重组等领域。
在SA和LCPA构造完成后,为了避免可能存在的缺陷或计算错误,对二者进行正确性验证是必需的。目前已知的SA和LCPA正确性验证方法是两个相互独立的过程,先验证SA的正确性,然后再验证LCPA的正确性。比如,现有的SA正确性验证方法是在SA构造完成以后,执行两轮整数排序来验证SA的正确性。LCPA的正确性验证通常是采用暴力的方法依次对后缀数组中相邻两个后缀的公共前缀进行比较来验证。在数据集规模较大的情况下,由于两个验证过程相互独立,时间和空间开销相对较大。
发明内容
本发明提供一种后缀数组和最长公共前缀的正确性验证方法及系统,以克服后缀数组和最长公共前缀的正确性验证不能同时进行的问题。
本发明旨在至少在一定程度上解决上述技术问题。
为了达到上述技术效果,本发明的技术方案如下:
一种后缀数组和最长公共前缀的正确性验证方法,包括:从右向左扫描一遍T,按照后缀类型定义比较字符T[i]及其后继字符T[i+1]的大小,计算T的字符T[i]和后缀suf(T,i)的类型,记录于t[i]中;将SA1和LCPA1中的元素初始化为-1。从左到右扫描一遍SA,根据数组t找出SA中所有LMS后缀及其LCP值,分别依次记录在SA1和LCPA1中;根据字符串T、数组t、SA1和LCPA1,对SA1中相邻LMS后缀及其LCP值进行正确性验证;根据字符串T、数组t、B、C、SA1和LCPA1,归纳排序T的L型后缀及其LCP值;根据字符串T、数组t、B、C、SA1和LCPA1,归纳排序T的S型后缀及其LCP值;顺序扫描SA、SA1、LCPA和LCPA1一次,比较SA与SA1和LCPA与LCPA1是否相同,如果两组比较全部相同则T的SA和LCPA正确,否则错误。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东顺德中山大学卡内基梅隆大学国际联合研究院;中山大学,未经广东顺德中山大学卡内基梅隆大学国际联合研究院;中山大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710183737.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:双层单手用键盘
- 下一篇:一种防水性且具有发热功能的计算机机械键盘