我认为通常情况下,插入到数组的中间(任何位置)可能会很昂贵——将元素移动到一个插槽上可能需要 O(n) 时间,并且可能需要为数组重新分配内存。另一方面,链接链接可能需要 O(1) 时间。
但是在 Ruby、Python 和 PHP 中,是否有一个数组对象只需要 O(1) 时间就可以在数组中间插入一个元素?
更新:并且必须遵循在数组中的任何位置替换数组元素或访问它也是 O(1)。
更新:插入如下:
1.9.3-p125 :001 > RUBY_DESCRIPTION
=> "ruby 1.9.3p125 (2012-02-16 revision 34643) [x86_64-darwin11.3.0]"
1.9.3-p125 :002 > a = %w{ a b c d }
=> ["a", "b", "c", "d"]
1.9.3-p125 :007 > a.insert(3, 123)
=> ["a", "b", "c", 123, "d"]