Tag: 时间复杂性

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

我正在从我的电子书中粘贴这个文本。 它说O(n 2 )的复杂性,并给出了解释,但我没有看到如何。 问题:此代码的运行时间是多少? public String makeSentence(String[] words) { StringBuffer sentence = new StringBuffer(); for (String w : words) sentence.append(w); return sentence.toString(); } 这本书的答案是: O(n 2 ),其中n是句子中的字母数。 原因如下:每次将一个字符串附加到句子上时,您都会创建一个句子副本并遍历句子中的所有字母以将它们复制过来如果您必须在循环中每次迭代最多n个字符,那么您就是循环至少n次,这给你一个O(n 2 )运行时间。 哎哟! 有人可以更清楚地解释这个答案吗?