ルビー配列の内部
Ruby Array Internals
解決:
それらは「最後に成長する」成長可能な配列です。
シフトは
O(1)、
アンシフトは
O(n)およびインデックスによるアクセスは
O(1)。私の知る限り、これはすべてのルビーの実装に当てはまりますが、MRIでは間違いなく当てはまります。
更新:この回答が最初に書かれた後、Rubyは次のように拡張されましたアンシフト償却
O(1)。拡張配列はRuby2.0.0以降であり、
シフト、
シフト解除、
プッシュ、そして
すべてポップ
O(1)または償却
または(1)。