下面是我們在項目管理系統中使用的一種蠻力算法,用於從摘要中提取關鍵字。那個蠻力算法的時間複雜度是多少?在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