如何计算时间复杂度

时间:2015-02-02 01:27:41

标签: java time-complexity

我的目标是确保for循环操作的时间复杂度不大于两个字符串的长度。所以在这个例子中,如果我算数正确,O(m-n)不能大于O(28)。我很确定这与长度完全相同,但我对Time Complexity并不熟悉。

所以我的问题是,for循环的时间复杂度是多少?

所以我意识到时间复杂度是m * n,这将大于两个字符串的长度。我知道它不赞成,但有没有人知道如何进一步减少它?

要清楚,程序正在检查String str以查看它是否包含String set中的任何字符。如果它匹配,程序应该打印第一个匹配的索引而不是退出。这只是我稍后要添加的另一个if语句。

代码:

String str = "ThisIsTesTingComplexity";
String set = "t9123";

for(int j = 0;j<str.length();j++)
    for(int i = 0;i<set.length();i++)
        if(str.charAt(j)==set.charAt(i))
            System.out.print(j);            

1 个答案:

答案 0 :(得分:0)

在这里,您显然有O(n*m)时间复杂度。只计算循环的迭代次数:对于第一个循环的每次迭代,第二个循环执行m次迭代,并且第一次循环有n次迭代。 CQFD。