
后缀数组相关算法实现
文章平均质量分 55
zxj346158052
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
倍增算法求解字符串的后缀数组
用倍增算法求解字符串的后缀数组原创 2010-12-01 17:33:00 · 999 阅读 · 0 评论 -
关于Manber-Mayer suffix array 构造算法
<br />文章首次提出了构造后缀数组的概念。并给出了时间复杂度为O(nlogn)的后缀数组构造算法。算法的思想具体如下:<br />排序分为log2(N+1)step,在第一步,字符串的所有后缀按照其第一个字符相同与否放入不同或相同的桶中。然后递归地,每一步都都按照上一步两倍的前缀字符来对后缀字符串进行划分并将其放入相应的桶中。即,每一步比较的前缀字符的个数分别是:1,2,4,8...。在第H步,后缀是按照<=H-Order来进行排序的。在H段后所有后缀被分入到了mH个桶中,每一个桶中存放的后缀们的前H个原创 2010-12-06 15:07:00 · 971 阅读 · 0 评论 -
两个字符串模式匹配的算法
<br /> 今天看了一下查找子串在某个文本中出现的位置的两个算法。一个是Karp-Rabin算法,另外一个是Knuth-Morris-Pratt算法。<br /> 先来说明一下这个Karp-Rabin算法。该算法提出了一个简单的子串位置查询的方法,区别于brute force方法的O(m*n)的时间复杂度,该算法在最坏情况下的时间复杂度是O(m*n),其平均复杂度为O(m+n)。其中m为子串的长度。n为文本的长度。该算法使用hash函数来检查两个序列。从而查找出子串在文本中出现的位置。原创 2010-12-13 20:45:00 · 791 阅读 · 0 评论