0
我正在看书它告诉外部环路的时间复杂度是O(纳米),而对于内环书给出解释确定时间复杂
“内的while循环绕到至多m次,并且当模式匹配失败时潜在地更少,这是另外两个 语句,位于外部for循环内,外部循环最多有n-m次,大约 ,因为一旦我们得到 嵌套循环的时间复杂度相乘,所以这给出了最坏情况下的运行时间O((n-m)(m + 2))。 “
我不明白是什么原因内环的时间复杂度为O(M + 2),而不是O(M)请帮忙
int findmatch(char *p, char *t)
{
int i,j; /* counters */
int m, n; /* string lengths */
m = strlen(p);
n = strlen(t);
for (i=0; i<=(n-m); i=i+1) {
j=0;
while ((j<m) && (t[i+j]==p[j]))
j = j+1;
if (j == m) return(i);
}
return(-1);
}
为什么会这样塔格ed C++?我们确定这个代码是C++(可能是C)。作业标签(我们不应该使用)可能实际上会更好.... – debracey