哈希表键与值获取复杂度
HashTable Key vs Value Fetch Complexity
我刚刚读到一个面试问题,问的是哈希键和哈希值的获取复杂度。我一直认为两者是一样的,在0 (1 + n/k) (k是桶的数量)我错过了什么?
获取哈希键键的长度为0 (k),因为您必须对其进行哈希,但对于任何给定的哈希表,n/k
应该是恒定的。这通常被称为0(1),因为它不依赖于n
,但它不是严格的 0(1),除非密钥大小是固定的。
但是获取哈希值将需要遍历整个表来查找它,假设你没有预先排序它(你可以设计哈希表,也可以支持二进制查找O(log(n)),但这是不常见的)
哈希值是初始查找位置。如果所需的数据没有存储在该索引中,则通过迭代获得散列键,直到找到所查找的数据。
相关文章:
- 函数复杂度分析
- 向量 <int> a {N, 0} 和 int arr a[N] = {0} 的时间复杂度有什么区别
- while循环中while循环的时间复杂度是多少
- 我可以创建一个包含两个变量的 for 循环,但时间复杂度仍然为 O(n) 吗?
- 函数的时间复杂度是多少?
- 如何检查两个 std::向量在小于 O(n) 的时间复杂度内是否相等
- 时间复杂度 当具有复合数据类型(如元组或对)时?
- 如何计算此排序函数的时间复杂度?
- 计算两个代码块的时间复杂度
- 当 A 在 for 循环中调用函数 B 时,如何计算函数 A 的空间复杂度?
- C++ 中具有 O(1) 搜索时间复杂度的数据结构
- 具有嵌套 if-else 的循环的时间复杂度
- C++中 std::map 的运行时复杂度是多少?
- 将树节点添加到向量向量中的 n 元树遍历的平均和最坏情况时间复杂度是多少?
- 如何计算函数的时间复杂度?
- 求解包含"variables"的 T(n) 时间复杂度
- 确定 for 循环的不同大 O 复杂度
- 此print_star函数的运行时复杂度是多少?
- 这个算法获取所有单词梯的时间复杂度是多少?
- 哈希表键与值获取复杂度