2
A
回答
4
deque
實現比雙向鏈表更聰明一點。它們是Python對象的雙向鏈接列表塊,其中左側和右側可能是不完整的塊。
在中間訪問的大O成本仍然是O(n)
,但它有一個不變除數(取決於實現,CPython 3.5 allocates blocks that can store 64 objects)。因此,如果您的deque
有1000個成員,則在中間訪問仍然只涉及大約7-8個「鏈接列表式」遍歷,而不是500個。如果deque
很小(65到128個元素,取決於空槽如何與頭部和尾部塊對齊),那麼查找任何元素都是等價的。
相關問題
- 1. 雙向搜索的時間複雜度
- 2. 雙向鏈表中節點刪除的時間複雜度
- 3. python str.index時間複雜度
- 4. 隨機存取數組的時間複雜度
- 5. 只訪問矩陣中的行的時間複雜度
- 6. Python集操作的時間複雜度?
- 7. 時間複雜度
- 8. 時間複雜度
- 9. boost :: hana :: tuple元素訪問的時間複雜度是多少?
- 10. 隨機訪問迭代器的複雜性
- 11. 時間複雜度(Java,Quicksort)
- 12. 算法複雜度時間
- 13. Python3 list.count()時間複雜度
- 14. 對數時間複雜度
- 15. 正確時間複雜度
- 16. 運行時間複雜度
- 17. 減少時間複雜度
- 18. 排序時間複雜度
- 19. 'if'in'時間複雜度
- 20. JQUERY時間複雜度
- 21. 計算時間複雜度
- 22. 函數時間複雜度
- 23. 降低時間複雜度
- 24. 時間計算複雜度?
- 25. 瞭解時間複雜度
- 26. 計算時間複雜度
- 27. 時間複雜度說明
- 28. 時間複雜度混亂
- 29. 時間複雜度驗證
- 30. 單鏈表中的時間複雜度
另請注意文檔[「索引訪問在兩端都是O(1),但在中間減慢到O(n)。」](https://docs.python.org/3/library/collections.html# collections.deque.maxlen) – metatoaster