后缀数组
编辑后缀数组(suffix array)是一个字符串后缀(一个子字符串,其起始位置不同,结束位置与原始字符串相同)在与元件的列中的开始位置的序列,相对于一个后缀字典顺序重新排列所获得的序列是。后缀树的数组版本。它主要用于字符串搜索,全文搜索等。迪·曼伯和基因迈尔斯于1990年宣布。
搜索方法
编辑如果使用后缀数组,则可以快速搜索出现搜索目标字符串的位置。换句话说,在后缀数组中查找字符串出现的位置与查找以该字符串开头的后缀相同。由于后缀数组按字典顺序排序,因此可以使用高速二进制搜索算法来搜索要搜索的字符串。
如果从后缀开始的最后一个后缀有一些公共字符,则最大字符数称为最长公共前缀(LCP,Longest Common Prefix)。可以省略以加快搜索速度。
块排序
编辑块排序(Burrows-Wheeler变换,BWT)也可以使用后缀数组的排序算法执行。从技术上讲,块排序需要对循环移位的字符串(而不是后缀)进行字典排序。由于这个原因,通过向所有字符串添加字符“ $”等作为保护者来执行循环移位,可以获得与后缀数组等效的结果。
内容由风提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://ispeak.vibaike.com/30412