我正在處理的程序使用字符串生成器將整數數組轉換爲字符串。我試圖確定這種方法的時間複雜性。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中TreeSet的lower()/ higher()的時間複雜度是多少?
- 3. Java中LinkedList.getLast()的時間複雜度是多少?
- 4. java中lastIndexOf的時間複雜度是多少?
- 5. java中HashMap.containsValue()的時間複雜度是多少?
- 6. 減少時間複雜度
- 7. 我的代碼中的時間複雜度是多少
- 8. 方案中'assoc'函數的時間複雜度是多少?
- 9. Python中collections.Counter()的時間複雜度是多少?
- 10. Ruby中Array#uniq方法的時間複雜度是多少?
- 11. TreeSet中有序操作的時間複雜度是多少?
- 12. Python中dict.keys()的時間複雜度是多少?
- 13. clojure中count函數的時間複雜度是多少?
- 14. C++中std :: next_permutation()函數的時間複雜度是多少?
- 15. Python中zip()的時間複雜度是多少?
- 16. 鏈式散列表中的時間複雜度是多少
- 17. 分時排序算法的時間複雜度是多少?
- 18. 在Java中實現的二叉樹LCA的時間複雜度是多少
- 19. 在java中使用Set/TreeSet的平均時間複雜度是多少?
- 20. 下面的遞歸函數的時間複雜度是多少
- 21. NavigableMap的floorEntry()方法的時間複雜度是多少?
- 22. 下面的僞代碼的時間複雜度是多少?
- 23. AngularJS的髒檢查算法的時間複雜度是多少?
- 24. 我的代碼的時間複雜度是多少?
- 25. 樹遍歷的時間複雜度是多少?
- 26. 以下代碼的時間複雜度是多少?
- 27. 爬山算法的時間複雜度是多少?
- 28. 代碼的時間複雜度是多少?
- 29. 以下循環的時間複雜度是多少
- 30. unordered_set <int> :: iterator it + n的時間複雜度是多少?
究竟你「效率」是什麼意思?您正在嘗試優化的標準是什麼? –
另外值得指出的是,您需要將一種方法的效率定義爲另一種可行的方法。因爲需要大量的燃料才能將衛星送入軌道,[效率不高](https://space.stackexchange.com/a/17925)(如有用的電力消耗);但在沒有其他選擇的情況下,「低效率」方法就是你所能做的,所以低效率在很大程度上是無關緊要的。那麼,你可以選擇什麼字符串生成器? –