使用API方法时如何计算时间复杂度?

How to calculate the time complexity when you use an API method?

我最近正在学习如何计算时间和 space 复杂度。我知道如何计算基本的。但是,当涉及到一些预构建的方法时,我感到困惑。比如下面的代码在Stringclass中使用了indexOf()方法,我该如何计算呢?谢谢!

class Solution {
    public String longestCommonPrefix(String[] strs) {
        String prefix = strs[0];
        for(int i = 1; i < strs.length; i ++){
            while(strs[i].indexOf(prefix) != 0){
                prefix = prefix.substring(0,prefix.length()-1);
            }
        }return prefix;
    }
}

正如评论中所写,现有的 answer 建议:

There is nothing like time complexity of a program. We calculate time complexity for algorithms or, in the context of programming, for individual (atomic) functions.

但要回答隐含的“如何在面试中处理这个问题?”:

  • 在上面的例子中,理解有显式循环。如果你专注于此,你可以估计内部循环体被执行了多少次
  • 从那里,您可以“在精神上”内联该库调用
  • 导致:您建议检查库方法的源代码以了解运行时成本