Boyer-Moore字符串搜索算法运行时复杂度

时间:2015-10-06 23:34:57

标签: string algorithm pattern-matching boyer-moore

Boyer-Moore string search algorithm wiki 链接中,表明Boyer-Moore的最坏情况复杂性

  1. O(m + n) 如果图案未出现在文字中
  2. O(mn) 如果文字出现在文字中
  3. 但在String Search Algorithm wiki中,据说Boyer-Moore的最坏情况复杂性为 O(n) 。为什么会出现这种差异?

    Here在最坏的情况下也被称为O(mn)。

    那么Boyer-Moore算法的正确运行时复杂度是多少?

1 个答案:

答案 0 :(得分:2)

差异来自不同的定义。在一般字符串搜索页面中,算法复杂性被分解为预处理和匹配,而算法本身的页面没有区别。

预处理将为Θ(m + k)加O(n)进行匹配。