相关疑难解决方法(0)

这段简单代码的复杂性是什么?

我正在从我的电子书中粘贴这个文本.它说O(n 2)的复杂性,并给出了解释,但我没有看到如何.

问题:此代码的运行时间是多少?

public String makeSentence(String[] words) {
    StringBuffer sentence = new StringBuffer();
    for (String w : words) sentence.append(w);
    return sentence.toString();
}
Run Code Online (Sandbox Code Playgroud)

这本书的答案是:

O(n 2),其中n是句子中的字母数.原因如下:每次将一个字符串附加到句子上时,您创建一个句子副本并遍历句子中的所有字母以将其复制如果您必须在循环中每次迭代最多n个字符,并且您是循环至少n次,这给你一个O(n 2)运行时间.哎哟!

有人可以更清楚地解释这个答案吗?

java complexity-theory big-o stringbuffer time-complexity

31
推荐指数
6
解决办法
1万
查看次数