如字串:ABCDEF
没排序的后缀:
1 ADCEFD
2 DCEFD
3 CEFD
4 EFD
5 FD
6 D
排序后的后缀存SA
1 ADCEFD
2 CEFD
3 D
4 DCEFD
5 EFD
6 FD
名次数组为Rank:
Rank数组的下标对应原字串的下标(各后缀的首字母,原字串第几后缀串)
其保存的内容对应当前下标开头后缀字串在SA数组的下标(SA中排第几)
A D C E F D
1 2 3 4 5 6 //各后缀首字母在原字串中的位置
SA[5] = 4 //SA[5]中保存的是EFD,这个后缀首字母是E,
//E在原字串A D C E F D中的位置是4
Rank[4] = 5 //SA数组中,后缀串首字为4即在原字串A D C E F D中的
//位置是4的字母E的后缀串E F D在SA数组中保存的位置为5,
//很明显SA[5] = E F D
后缀数组SA的排序:

本文详细介绍了如何构建及使用后缀数组(SA)和排名数组(Rank)。通过一个具体的例子展示了如何生成未排序及排序后的后缀,并解释了SA与Rank数组之间的关系及其在字符串处理中的应用。
3781

被折叠的 条评论
为什么被折叠?



