哪个在Ruby,Hash vs Array中效率更高

时间:2015-07-24 13:47:55

标签: arrays ruby hash

我正在通过规范pickaxe book学习Ruby。 在那本书的第2.3节中,我偶然发现了一句话,

  

访问数组元素效率更高,但哈希提供了更大的灵活性

据我所知,访问数组元素并按密钥查找哈希值都需要O(1)时间。

当作者说数组更有效地访问时,作者的意思是什么?它只是意味着数组更有效,因为数组的内部表示比哈希更简单吗?

1 个答案:

答案 0 :(得分:3)

  

它是否只是意味着数组更有效,因为数组的内部表示比哈希更简单?

是。算法复杂度可能相同,但一般来说数组会更快,因为查找过程要简单得多。另一方面,当使用数组时,"键" (indices)只能是整数,并且数组不是稀疏的 - 如果存储到a[100],之后数组中将至少有101个元素。

(对于非常稀疏的数组,哈希映射实际上应该表现得更好)。

相关问题