java中StringBuilder.append()的时间复杂度是多少?
What is the time complexity of StringBuilder.append() in java?
我正在开发的一个程序使用字符串生成器将整数数组转换为字符串。我正在尝试确定这种方法的时间复杂度。
查看:
基本上,不清楚 StringBuilder#append
的时间复杂度是多少,因为它取决于它的实现,所以你不必担心它。
可能有更有效的方法来处理 int[]-String 转换,具体取决于您实际想要实现的目标。
如果 StringBuilder
需要增加其容量,这涉及将整个字符数组复制到一个新数组。您可以通过初始设置容量来避免这种情况,这样它就不必这样做。 (这应该很容易,因为您知道 int
数组的长度和 int
的 String
表示中的最大字符数。)
如果避免增加容量的需要,复杂度似乎只是O(n)。附加时,您只是将字符数组从 String
复制到 StringBuilder
.
中字符数组的末尾
(是的,这取决于实现,但如果它不能在 O(n) 时间内追加,那将是 StringBuilder
的一个相当糟糕的实现。)
我正在开发的一个程序使用字符串生成器将整数数组转换为字符串。我正在尝试确定这种方法的时间复杂度。
查看:
基本上,不清楚 StringBuilder#append
的时间复杂度是多少,因为它取决于它的实现,所以你不必担心它。
可能有更有效的方法来处理 int[]-String 转换,具体取决于您实际想要实现的目标。
如果 StringBuilder
需要增加其容量,这涉及将整个字符数组复制到一个新数组。您可以通过初始设置容量来避免这种情况,这样它就不必这样做。 (这应该很容易,因为您知道 int
数组的长度和 int
的 String
表示中的最大字符数。)
如果避免增加容量的需要,复杂度似乎只是O(n)。附加时,您只是将字符数组从 String
复制到 StringBuilder
.
(是的,这取决于实现,但如果它不能在 O(n) 时间内追加,那将是 StringBuilder
的一个相当糟糕的实现。)