在学习KMP算法时,我遇到了以下用于填充表格的代码
for(int i=1,j=0;i<ar.length;i++)
{
if(s.charAt(i)==s.charAt(j))
{
ar[i]=++j;
}
else if(j>0)
{
j=ar[j-1];
i--;
}
}
在其他情况下,我们将暂停i并减j。我认为我们有可能一直将j一直递减到0,所以总的来说,如果每个i都将j递减到0,那么总的时间复杂度将不是O(n^2)
吗?