Ruby容器和复杂性



访问类似hash[:value1][:value2]的内容的时间复杂度是多少?

如果我有一个方法,它多次出现,将其分配给一个变量会更好吗?

谢谢!

Ruby语言规范实际上并没有正式保证任何特定的性能特征,然而,所有Ruby实现都使用动态字典的典型性能特征来实现Ruby Hashes:O(n)最坏情况下的时间复杂性和O(1)插入、删除和随机访问的摊销最坏情况时间复杂性。尽管规范没有保证这些,但这些都是社区所期望的,任何不符合这些要求的实现都可能不会被社区接受。

Rubinius有一个基于Hash Array Mapped Trie的Hash的替代实现,它可以选择性地用命令行开关激活,我认为所有这些都可能有O(logn)(但具有高分支因子)。(我没有检查。)

最新更新