我有蛮力字符串模式搜索算法如下:蛮力字符串的模式匹配分析,平均
public static int brute(String text,String pattern) {
int n = text.length(); // n is length of text.
int m = pattern.length(); // m is length of pattern
int j;
for(int i=0; i <= (n-m); i++) {
j = 0;
while ((j < m) && (text.charAt(i+j) == pattern.charAt(j))) {
j++;
}
if (j == m)
return i; // match at i
}
return -1; // no match
} // end of brute()
虽然anlaysising上述算法笔者在这里提到的最坏情况和平均情况。
我承担了最糟糕的情况下的表现,但对于平均水平作者是如何带着O(m + n)表现的?在这里需要帮助。
蛮力模式匹配在最坏的情况下运行时间O(mn)。
普通文本大多数搜索的平均值为O(m + n),非常快。更一般情况的
举例: T:“这样的字符串搜索的例子是标准的” 病人:“存储”
感谢您的时间和帮助
问题问解释平均情况 – 2013-03-22 07:08:23
大O是上限。最好的,最差的和平均的情况都可以有上限。所以你可以使用big-O。该算法本身也可以具有上限,这与最坏情况相同。 – Dukeling 2013-03-22 07:10:48
那么,平均使用(不是平均情况)是其中m有Ω(log(n)) – 2013-03-22 07:42:57