哈希表键与值获取复杂度

HashTable Key vs Value Fetch Complexity

本文关键字:获取 复杂度 哈希表      更新时间:2023-10-16

我刚刚读到一个面试问题,问的是哈希键和哈希值的获取复杂度。我一直认为两者是一样的,在0 (1 + n/k) (k是桶的数量)我错过了什么?

获取哈希键的长度为0 (k),因为您必须对其进行哈希,但对于任何给定的哈希表,n/k应该是恒定的。这通常被称为0(1),因为它不依赖于n,但它不是严格的 0(1),除非密钥大小是固定的。

但是获取哈希将需要遍历整个表来查找它,假设你没有预先排序它(你可以设计哈希表,也可以支持二进制查找O(log(n)),但这是不常见的)

哈希值是初始查找位置。如果所需的数据没有存储在该索引中,则通过迭代获得散列键,直到找到所查找的数据。