Java 中字符串连接的计数操作
Counting Operations of String Concatenation in Java
我试图理解为什么字符串连接在 Java 中是 O(n)
时间复杂度。
我们被告知 s1 + s2
将创建一个长度为 s1.length() + s2.length()
的新字符串,并将 s1
和 s2
复制到该新字符串中。
所以下面的成本是(他们)计算出来的 2 + 2(n+1) + 1
=> (5 + 2n)
我不确定我是否理解我的讲师是如何计算出来的。有人介意向我解释一下证明上述成本合理的字符串连接操作吗?
我会谨慎地假设 Java 中的字符串连接期间发生的事情,因为它从 Java 9.
开始在内部发生了变化
还值得一读:https://dzone.com/articles/jdk-9jep-280-string-concatenations-will-never-be-t
已经有点老了,但可能与你有关:
我试图理解为什么字符串连接在 Java 中是 O(n)
时间复杂度。
我们被告知 s1 + s2
将创建一个长度为 s1.length() + s2.length()
的新字符串,并将 s1
和 s2
复制到该新字符串中。
所以下面的成本是(他们)计算出来的 2 + 2(n+1) + 1
=> (5 + 2n)
我不确定我是否理解我的讲师是如何计算出来的。有人介意向我解释一下证明上述成本合理的字符串连接操作吗?
我会谨慎地假设 Java 中的字符串连接期间发生的事情,因为它从 Java 9.
开始在内部发生了变化还值得一读:https://dzone.com/articles/jdk-9jep-280-string-concatenations-will-never-be-t
已经有点老了,但可能与你有关: