Complexity theory 一个简单伪码函数的渐近复杂性
我想了解如何推导这个函数的渐近运行时间 输入:数组A包含n个整数A[1]到A[n]Complexity theory 一个简单伪码函数的渐近复杂性,complexity-theory,Complexity Theory,我想了解如何推导这个函数的渐近运行时间 输入:数组A包含n个整数A[1]到A[n] 输出:二维n×n数组B,其中B[i,j]表示i这在某种程度上取决于您如何实现通过A[j]添加数组条目A[i]: for i = 1 to n for j = i to n sum = 0 for k = i to j sum = sum + A[i] b[i,j] = sum return b 上面是O(n^3)和ω(n^3),因此
输出:二维n×n数组B,其中B[i,j]表示i这在某种程度上取决于您如何实现
通过A[j]添加数组条目A[i]
:
for i = 1 to n
for j = i to n
sum = 0
for k = i to j
sum = sum + A[i]
b[i,j] = sum
return b
上面是O(n^3)和ω(n^3),因此是θ(n^3)。但是,如果以不同方式计算sum
:
for i = 1 to n
sum = 0
for j = i to n
sum = sum + A[i]
b[i,j] = sum
return b
这是O(n^2),ω(n^2)和θ(n^2)。对于您的特定问题-O和Omega通常是相同的(也就是说,您通常会得到θ界),如果您在基于简单代码的问题中进行运行时分析。θ边界是查看特定实现时的规则,而不是例外
for i = 1 to n
sum = 0
for j = i to n
sum = sum + A[i]
b[i,j] = sum
return b