tùy chọn của tôi là gì? Tôi cần phải gọi rất nhiều append
s (đến bên phải) và popleft
s (từ đầu bên trái, một cách tự nhiên), nhưng cũng phải đọc từ giữa bộ nhớ, sẽ tăng dần theo tính chất của thuật toán. Tôi muốn có tất cả các hoạt động này trong O(1)
.O (1) deque có thể lập chỉ mục các số nguyên trong Python
Tôi có thể thực hiện nó trong C dễ dàng đủ trên mảng được định địa chỉ tròn (từ là gì?) Sẽ tự động phát triển khi nó đầy; nhưng về Python thì sao? Con trỏ đến các ngôn ngữ khác được đánh giá cao quá (tôi nhận ra các "bộ sưu tập" thẻ là Java hơn định hướng và sẽ đánh giá cao sự so sánh, nhưng là một mục tiêu thứ cấp).
Tôi đến từ nền Lisp và rất ngạc nhiên khi biết rằng trong Python loại bỏ phần tử đầu khỏi danh sách là hoạt động O(n)
. deque
có thể là câu trả lời ngoại trừ tài liệu cho biết quyền truy cập là O(n)
ở giữa. Có gì khác, được xây dựng trước không?
nói chung, http://en.wikipedia.org/wiki/Hashed_array_tree có thể có liên quan. –