让我们说我想回答的问题是:
问。证明O(n)+ O(1)= O(n)
我回答了这个问题......
首先,我们可以看到 f(n)< f(n)+ 1< 2f(n)因此我们可以说明 O(n)+ O(1)= 2O(n)然后通过应用系数规则得到 O(n) + O(1)= O(n)。
我想了解如何正确处理这类问题,并想知道我的推理是否正确?谢谢!
答案 0 :(得分:0)
我建议你通过证明来详细说明:
O(n) <= O(n) + O(1)
O(n) + O(1) <= O(n)
然后得出结论:两个集合是相同的(您可以将这些对象视为函数集和它们之间的不等式作为包含)。
不平等1
在f(n)
中取O(n)
。我们必须证明f(n)
可以表示为O(n)
中的函数加上O(1)
中的函数。这是正确的,因为f(n) <= f(n) + 1
(你的论点)。
不平等2
在f(n)
和O(n)
g(n)
中使用O(1)
两个函数。我们必须证明f(n) + g(n)
位于O(n)
。换句话说,我们必须显示f(n) + g(n) <= C*n
对于某个常量C
和n
足够大。
现在,我们可以使用常量A
和整数N
,f(n) <= A*n
n > N
。这是因为f(n)
位于O(n)
。同样,B
和M
存在g(n) <= B
n > M
(因为g(n)
位于O(1)
)。因此,n > max(N,M)
我们得到了
f(n) + g(n) <= A*n + B
<= max(A,B)*n + max(A,B)
<= max(A,B)*n + max(A,B)*n
<= 2max(A,B)*n
表示存在常量C
,即2max(A,B)
和整数R
,即max(N,M)
,以便:f(n) + g(n) <= C*n
表示所有{ {1}},根据定义,n > R
位于f(n) + g(n)
,正如我们想要看到的那样。