KMP算法中构建表的时间复杂度

时间:2020-03-22 17:07:20

标签: algorithm

在学习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)吗?

0 个答案:

没有答案