【发布时间】:2020-10-13 20:11:42
【问题描述】:
我有一个关于学校的测验问题
“Boyer Moore 算法的最坏情况时间复杂度为 O(MN),其中 M 是字符串的长度,N 是模式的长度。”
这是真假问题,我对上面的陈述回答了假,因为我总是读到 N 是文本的长度,M 是模式的长度,但我的导师说你如何定义 M 和 N 并不重要,所以因为它声称声明是真实的,它是正确的吗?如果不是,我怎么能从科学上证明他的说法是错误的?
【问题讨论】:
-
@CodingTil 根本没有回答我的问题
-
哪个更大:
12 * 5或5 * 12? -
什么?你无法“科学地”向他证明这一点,因为变量的名称并不重要。他们是名字。你可以称它们为“foo”和“bar”。此外,它是 m*n - 乘法是可交换的,所以哪个是哪个都没有关系。
-
在链接中,有一个段落指出“在最坏的情况下,坏字符启发式可能需要 O(mn) 时间。”在此之前,它解释了为什么会这样。
标签: java algorithm substring boyer-moore