Kar*_*ath 12 ruby arrays
如何在内部实现ruby数组(主要在CRuby中,但欢迎任何其他信息)?
它们是可扩展的数组,如c ++向量还是基于列表?shift/unshift和按索引访问元素的复杂性是什么?
sep*_*p2k 16
它们是可生长的阵列,"最终成长".
shift是O(1),unshift是O(n)和索引访问是O(1).据我所知,这适用于所有ruby实现,但它绝对适用于MRI.
shift
O(1)
unshift
O(n)
更新:在最初编写此答案之后,Ruby已得到增强以进行unshift摊销O(1).增强阵列在红宝石2.0.0和以后,使得shift,unshift,push,和pop所有O(1)或摊销O(1).
push
pop
归档时间:
14 年,5 月 前
查看次数:
2049 次
最近记录:
7 年,1 月 前