algorithm - 具有哈希表查找的四嵌套循环的大 theta

标签 algorithm hashtable big-o

for (int i = 0; i < 5; i++) {
    for (int j = 0; j < 5; j++) {
        for (int k = 0; k < 5; k++) {
            for (int l = 0; l < 5; l++) {
                look up in a perfect constant time hash table
            }
        }
    }
}

这在大 theta 中的运行时间是多少?

我最好的猜测,瞎猜:我总是看到嵌套的 for 循环是 O(n^k),其中 k 是循环的数量,所以循环是 O(n^4),那么我会乘以 O(1) 常数时间?在 big theta 中这一切会是什么?

最佳答案

如果您认为访问哈希表实际上是 theta(1),那么该算法也在 theta(1) 中运行,因为它只在哈希表中进行常量 (5^4) 次查找。

但是,如果将 5 更改为 n,则它将是 theta(n^4),因为您将执行恰好 n^4 个常数时间操作。

关于algorithm - 具有哈希表查找的四嵌套循环的大 theta,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19517231/

相关文章:

algorithm - 在具有一组连续 1 的二维数组中查找所有可能的位排列

java - 持久哈希表实现

algorithm - O(1)+O(2)+ .... +O(n) 的阶和

c - 从哈希表中随机删除所有项目的有效方法?

hash - 用二叉搜索树实现哈希表

java - 矩阵乘法大O表示法

java - 该算法的时间和空间复杂度是多少?

c# - 突出显示代码中匹配的括号

arrays - 给定数组 A,计算 B s.t B[i] 存储距离 A[i] 左侧最近的小于 A[i] 的元素

Ruby 随机打乱一个数组,以便没有元素保留其原始位置