设置操作与ruby中的数组操作的效率

时间:2011-02-24 05:11:13

标签: ruby-on-rails ruby performance

操作集和数组之间的效率有何不同?

示例:

  • 查找
  • 迭代
  • 包括?

1 个答案:

答案 0 :(得分:15)

在Ruby中,Set是使用底层Hash为其存储编写的,它通常应该与Hash等效。因此:

  • include?:O(1)表示Set,O(n)表示数组
  • 枚举:两者都是O(n)
  • delete:O(1)表示Set,O(n)表示数组

...等

如果通过“查找”表示按索引查找,我会注意到默认的Set实现是无序的,因此它不像Array那样支持该操作。