我正在处理的程序使用字符串生成器将整数数组转换为字符串。我试图确定这种方法的时间复杂性。java中StringBuilder.append()的时间复杂度是多少?
回答
退房:https://stackoverflow.com/a/7156703/7294647
基本上,这是不明确的时间复杂度是什么StringBuilder#append
因为它依赖于它的实现,所以你不应该担心。
可能有一种更有效的方法来处理你的int [] - 字符串转换,具体取决于你实际尝试实现的方式。
如果StringBuilder
需要增加其容量,则需要将整个字符数组复制到新数组。您可以通过初始设置容量来避免这种情况,因此不必执行此操作。 (因为你知道int
阵列和字符在int
的String
表示最大数量的长度。这应该很容易。)
如果您避免需要增加容量,复杂性似乎只是上)。在追加时,只需将String
中的字符数组复制到StringBuilder
中的字符数组的末尾即可。
(是的,它依赖于实现,但它是一个相当糟糕的实现的StringBuilder
,如果它不能在O(n)的时间。附加)
这很可能比这更快;它可以为O(1)追加使用类似'LinkedList'的东西。 –
我不确定。如果它是O(1),这意味着你正在复制链接列表本身而不是值 - 那么如果你想追加一些东西到最后,你会不会遇到问题?它会改变原来的。 –
- 1. Collection.toArray()的时间复杂度是多少?
- 2. Java中LinkedList.getLast()的时间复杂度是多少?
- 3. 减少时间复杂度
- 4. 我的代码中的时间复杂度是多少
- 5. Python中zip()的时间复杂度是多少?
- 6. clojure中count函数的时间复杂度是多少?
- 7. C++中std :: next_permutation()函数的时间复杂度是多少?
- 8. Python中collections.Counter()的时间复杂度是多少?
- 9. TreeSet中有序操作的时间复杂度是多少?
- 10. 方案中'assoc'函数的时间复杂度是多少?
- 11. 分时排序算法的时间复杂度是多少?
- 12. AngularJS的脏检查算法的时间复杂度是多少?
- 13. NavigableMap的floorEntry()方法的时间复杂度是多少?
- 14. 这个算法(代码)的时间复杂度是多少?
- 15. 代码的时间复杂度是多少?
- 16. 梅森扭纹机的时间复杂度是多少?
- 17. 这个函数的时间复杂度是多少?
- 18. 这个伪代码的时间复杂度是多少?
- 19. 这个算法的时间复杂度是多少?
- 20. 以下代码的时间复杂度是多少?
- 21. 给定片段的时间复杂度是多少?
- 22. DataRow索引器的时间复杂度是多少?
- 23. 这个循环的时间复杂度是多少?
- 24. 树遍历的时间复杂度是多少?
- 25. 这个程序片段的时间复杂度是多少?
- 26. 密码散列函数的时间复杂度是多少?
- 27. 搜索JavaScript对象键的时间复杂度是多少?
- 28. 迭代std :: set/std :: map的时间复杂度是多少?
- 29. 这个程序的时间复杂度是多少?
- 30. SQL - 外键O(1)的时间复杂度是多少?
究竟你“效率”是什么意思?您正在尝试优化的标准是什么? –
另外值得指出的是,您需要将一种方法的效率定义为另一种可行的方法。因为需要大量的燃料才能将卫星送入轨道,[效率不高](https://space.stackexchange.com/a/17925)(如有用的电力消耗);但在没有其他选择的情况下,“低效率”方法就是你所能做的,所以低效率在很大程度上是无关紧要的。那么,你可以选择什么字符串生成器? –