如果你能帮我做part a,我大概可以找出b部分。我一整天都在看这个和类似的问题,而我只是在解决如何处理嵌套循环时遇到问题。对于第一个循环,有n次迭代,第二次有n-1次,第三次有n-1次。我是否正确思考这个问题?离散数学Big-O符号算法复杂性
考虑下面的算法,
,其作为输入n个整数a1的一个序列,A2,...,一个
,并产生作为输出的矩阵M = {}自我介绍
其中自我介绍是最小术语
在整数ai,a + 1,...,aj的序列中,j> = i,否则mij = 0。
初始化中号以便自我介绍=人工智能如果j> = i和自我介绍= 0
for i:=1 to n do
for j:=i+1 to n do
for k:=i+1 to j do
m[i][j] := min(m[i][j], a[k])
end
end
end
return M = {m[i][j]}
的(a)表明,该算法使用BIG-O(N^3)比较,以计算矩阵M. (b)证明该算法使用Big-Omega(n^3)比较来计算矩阵M.使用这个面和部分(a),推断该算法使用Big-theta(n^3) )比较。
谢谢!这比教材中的其他例子更有意义。现在,对于b部分。看看你的提示,如果我只看前半部分,操作次数会少一些,但算法仍然会执行Cn^3操作,其中C <= 1。因此,该算法是Big-Omega(n^3)。那是对的吗? – kkm
@helmeplease:这个想法是正确的,但是如果你正式需要,那么应该做更多的步骤来展示它,然后如此直截了当。试试看,使用我用来展示big-O的方法,经过几次试验后,我相信你会到达那里。 – amit
我必须说明这个新算法有多少操作,或者我可以说“Cn^3操作,其中C <= 1?”这是我遇到的最大问题 - 计算操作次数,当它不像您提供的示例那样简单时。 – kkm