《后缀数组——处理字符串的有力工具》-课件设计(公开).pptVIP

  • 5
  • 0
  • 约2.22千字
  • 约 31页
  • 2018-12-24 发布于广西
  • 举报

《后缀数组——处理字符串的有力工具》-课件设计(公开).ppt

处理字符串的有力工具--- 华南师范大学附属中学 罗穗骞 指导教师:张学东 后缀数组 目录 第一部分 后缀数组的实现 DC3算法 第二部分 后缀数组的应用 例1: 求两个字符串的最长公共子串 基本定义 【后缀数组SA】后缀数组保存的是一个字符串的所有后缀的排序结果。其中SA[i]保存的是字符串所有的后缀中第i小的后缀的开头位置。 【名次数组Rank】名次数组Rank[i]保存的是后缀i在所有后缀中从小到大排列的“名次”。 为了叙述方便,以第k个字符开始的后缀称为后缀k。 基本定义 以字符串“aabaaaab”为例。 DC3算法 复杂 难以实现 仅40行代码 DC3算法 (1)、先将后缀分成两部分,然后对第一部分的后缀排序。 (2)、利用(1)的结果,对第二部分的后缀排序。 (3)、将(1)和(2)的结果合并,即完成对所有后缀排序。 (1)、将后缀分成两部分 字符的编号从0开始。 将后缀分成两部分: 第一部分是后缀k(k模3不等于0) 第二部分是后缀k(k模3等于0) 对第一部分的后缀排序。 为了方便接下来的操作,这里要求字符串必须以一个最小的字符结尾。 suffix(1) suffix(2) 递归 后缀数组 步骤(1)完成 DC3算法 (1)、先将后缀分成两部分,然后对第一部分的后缀排序。 (2)、利用(1)的结果,对第二部分的后缀排序。 (3)、将(1)和(2)

文档评论(0)

1亿VIP精品文档

相关文档