我正在通过规范的镐簿学习Ruby。在那本书的2.3节,我偶然发现一个句子说,
访问数组元素的效率更高,但是散列提供了更大的灵活性
据我所知,访问数组元素和通过键查找哈希值都需要O(1)时间。
当作者说数组的访问效率更高时,这是什么意思?它是否仅仅意味着数组的效率更高,因为数组的内部表示比散列更简单?
发布于 2015-07-24 13:50:11
它是否仅仅意味着数组的效率更高,因为数组的内部表示比散列更简单?
是。算法的复杂度可能是相同的,但是数组的速度通常会更快,因为查找过程要简单得多。另一方面,当使用数组时,“键”(索引)只能是整数,而且数组不是稀疏的--如果存储到a[100],那么数组之后至少会有101个元素。
(对于极稀疏的数组,哈希映射实际上应该执行得更好)。
https://stackoverflow.com/questions/31612260
复制相似问题