为什么后缀树中出现的复杂性是O(mn)?

时间:2011-04-14 03:26:06

标签: algorithm

基于此http://www.itu.dk/courses/AVA/E2005/StringIndexing.pdf 第12/36页

给定一个字符串 T [1 ... n] ,我们构建一个后缀树。搜索模式为 P [1 ... m]

• Preprocessing: O(n^2)
• Space: O(n^2)
• Occur(P in suffix tree): O(n*m) <===== why?
• Member is: O(m)

1 个答案:

答案 0 :(得分:1)

您引用的材质中的Occur(...)操作不是从后缀树中搜索P,而是查找最长匹配(即查找搜索树中出现的P的最长子字符串)和报告相应的叶子。最糟糕的情况是O(nm)操作,因为你需要获取P的每个后缀(即O(m)),并且每次都可能报告O(n)个叶子。