该算法的复杂度bigO是多少?

问题描述

| 该算法通过一个字符串查找并尝试查找另一个字符串。我猜逻辑很简单。虽然,我需要帮助才能找到它的复杂性。
int find(string mString,string lookUp)
{
    int i,z,j,m = mString.size(),n = lookUp.size(),broken = 0,st = 0;
    for(j = 0,i = 0; i < m; i++)
    {
        if(mString[i] == lookUp[j])
        {
            if(broken)
            {
                //go back and see if we\'re on the good path
                broken = 0;
                for(z = 0; z < j; z++)
                {
                    if(broken) break;
                    if(mString[i-z] == lookUp[j-z])
                        broken = 0;
                    else
                        broken = 1;
                }
                if(!broken) st = i - j + 1;
            }
            if(j + 1 != n)
                j++;
        }
        else
            broken = 1;
    }
    return st;
}
有人能帮帮我吗? 谢谢。     

解决方法

在处理big-O和循环时,我问自己一个问题:   每个循环最多可以运行多少次? 在您的示例中 外循环最多运行m次。 内循环最多运行n次。 对于外循环的每次迭代,内循环最多运行“ n”次 这是否有助于澄清您的想法?     ,O(n ^ 2)是该算法的最终复杂度。