需要以下代码的时间复杂度吗?

Needed the time complexity of below code?

这段代码的时间复杂度是O(n*m) 其中n是ar[]的大小,m是ar[中String的最大长度] 还是我哪里错了?请问有人可以澄清这个疑问吗?

function1(String[] ar){
     for(int i=0;i<ar.length;i++){
       function2(ar[i]);
     }
}

function2(String str){
    for(int j=0;j<str.length();j++){
     // some operation o(1)
    }
}

谢谢。

是的,没错。除非您有一些额外的信息,否则无法通过字符串大小确定数组大小,反之亦然,这意味着您需要 m 和 n,或者更准确地说,它们的乘积才能得到结果。

算法实际执行所需时间预计在avg(m) * n左右,当然也会受到其他变量的影响,比如执行过程中的服务器负载算法,O(1) 操作的性质等等。