SA后缀数组-哈尔滨工业大学2016暑期ACM训练.pptxVIP

  • 7
  • 0
  • 约3.21千字
  • 约 25页
  • 2018-06-28 发布于北京
  • 举报

SA后缀数组-哈尔滨工业大学2016暑期ACM训练.pptx

后缀数组kimnoic@hitCONTNETSwhat it is01what can it do02后缀数组后缀数组是处理字符串的有力工具。后缀数组是后缀树的一个非常精巧的替代品,它比后缀树容易编程实现,能够实现后缀树的很多功能而时间复杂度也并不逊色,而且它比后缀树所占用的内存空间小很多。后缀数组子串:字符串S的子串r[i..j],i≤j,表示r串中从i到j这一段,也就是顺次排列r[i],r[i+1],...,r[j]形成的字符串。后缀:后缀是指从某个位置i开始到整个串末尾结束的一个特殊子串。字符串r的从第i个字符开始的后缀表示为Suffix(i),也就是 Suffix(i)=r[i..len(r)]。后缀数组后缀数组SA是一个一维数组,它保存1..n的某个排列SA[1],SA[2],……,SA[n],并且保证Suffix(SA[i])Suffix(SA[i+1]),1≤in。也就是将S的n个后缀从小到大进行排序之后把排好序的后缀的开头位置顺次放入SA中。名次数组:名次数组Rank[i]保存的是Suffix(i)在所有后缀中从小到大排列的“名次”后缀数组后缀数组倍增算法的主要思路是:用倍增的方法对每个字符开始的长度为2k的子字符串进行排序,求出排名,即rank值。k从0开始,每次加1,当2k大于n以后,每个字符开始的长度为2k的子字符串便相当于所有的后缀。并且这些子字符串都一定已

文档评论(0)

1亿VIP精品文档

相关文档