下面是我们在项目管理系统中使用的一种蛮力算法,用于从摘要中提取关键字。那个蛮力算法的时间复杂度是多少?在NP中还是在P中,是NP-NP还是NP-complete?这个蛮力算法NP-hard?
这是算法:
public static int search(String pattern, String text) {
int M = pattern.length();
int N = text.length();
for (int i = 0; i < N - M; i++) {
int j;
for (j = 0; j < M; j++) {
if (text.charAt(i+j) != pattern.charAt(j)) {
break;
}
}
if (j == M) {
return i;
}
}
return -1;
}
标题语法不完全清楚,请查看... – MarcoS 2014-10-09 07:49:47
在您的代码中,存在两个嵌套for循环。如果M足够小或M在有限范围内变化,则时间复杂度为N的阶数。如果M变化很大,则时间复杂度为(N * M)的阶数。 – 2014-10-09 07:57:49
我想知道NP硬(非确定性多项式),NP完全(非确定性,P型(多项式))这类问题,当我使用模式匹配的bruite force算法从摘要中分析关键字时,文本文件...我如何决定在什么类别的算法将来? – poo 2014-10-09 09:45:45