algorithm - 计算算法的 Theta(n)

标签 algorithm big-o

我正在尝试计算以下算法的 Theta(n)

for i = 1 -> n
   for j = 1 -> n
       B[i,j] = findMax(A,i,j)

findMax(A,i,j)
    if j < i
        return 0
    else
        max = A[i]
        for k = i + 1 -> j
             if max < A[k]
                max = A[k]
        return max 

我知道 O、theta 和 omega 大致翻译为

O≈≤

Ω≈≥

Θ≈=

对于算法,我认为 omega = n^2,o = n^3,但我不确定 theta 是多少。有什么想法吗?

最佳答案

如果计算代码行的次数

if max < A[k]

的执行取决于 n 你会得到 Theta(n^3) 次执行。因此,您的算法的运行时间也是 Thetat(n^3)。

关于algorithm - 计算算法的 Theta(n),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35118666/

相关文章:

algorithm - 根据 O(N) 中的面积对矩形进行排序

algorithm - 解决以下重现: T(n) = T(n/3) + T(n/2) + sqrt(n)

c++ - 程序的计算复杂度

c++ - 在大 O 表示法中,您如何考虑对其他方法的调用?

javascript - 20 * 20 亿怎么会像大 O 表示法中的 2 * 3 那么长?

java - 从数组中删除连续元素的最有效方法? java

algorithm - 均值大于阈值的数组的最大子集

algorithm - 模拟3D空间中的简单三边测量算法

c++ - 程序可以在 ideone 上运行,但不能在本地运行(可能是内存错误)

algorithm - 寻找这段代码的 Big-O