后缀数组 (SA)
我是一只计算鸡
The people who are crazy enough to think they can change the world are the ones who do.
展开
-
【Suffix Array】后缀数组详解
后缀数组,一种处理字符串的有力工具。 后缀:假设字符串的长度为n,那么后缀 i 表示 从 i 到 n 这一段字符串。ababa:后缀 3 为 aba。 后缀数组就是对字符串的所有后缀排序。 很显然,我们可以通过快速排序在的时间复杂度内对 n 个后缀进行排序,但是字符串之间的比较不是的,而是的,所以整体时间复杂度为。 Manber和Myers发明的倍增算法,它的时间复杂度为。 下面详细介绍...原创 2019-09-30 19:38:31 · 1031 阅读 · 0 评论 -
【LCP】后缀数组 + LCP + RMQ
:最长公共前缀 :代表后缀在 后缀数组中的下标 :后缀 和后缀 的最长公共前缀 对于两个后缀 和 ,不妨设 ,不难得出后缀 和后缀 的长度等于 按照定义计算需要,整个height 数组需要。但是我们有的算法,我们用一个辅助数组,然后按照顺序递推计算。递推计算的基于一个性质:。 设排在后缀前一个是后缀。后缀和后缀分别删除首字符之后得到后缀和后缀 ,因此后缀一定排在后缀前面,并且最长...原创 2019-09-30 20:27:44 · 452 阅读 · 1 评论