【发布时间】:2016-09-17 19:44:42
【问题描述】:
我知道您如何通过密钥访问您的收藏。但是,hash 函数本身在幕后有很多操作,不是吗?
假设你有一个非常有效的很好的哈希函数,它仍然可能需要很多操作。
这可以解释一下吗?
【问题讨论】:
-
O 表示法是关于使用不同输入测量
the growth的复杂性。这与您有多少操作无关。例如:对于 1 值,您有x秒,对于n值,您需要roughlyx*n秒 => O (n)。x可以是许多操作的组合。 -
数据结构没有 O 符号复杂性,对它们的操作有。
-
那我们要做什么操作呢?
-
OP 明确表示按键访问是有问题的操作。
-
“很多操作”和 O(1) 完全兼容 - O(1) 或常数时间意味着,随着元素数量接近无穷大,存在一些限制执行的有限常数时间。该常数可以任意大 - 使用保证在一年内完成的哈希函数不会阻止系统成为 O(1)。
标签: c# dictionary hashtable big-o