证明O(max {f(n),g(n)})= O(f(n)+ g(n))

时间:2015-02-07 20:50:59

标签: big-o

我对Big O符号有点困惑,以及如何在有最大值时证明它。如何用最大值证明O(max {f(n),g(n)})= O(f(n)+ g(n))

1 个答案:

答案 0 :(得分:0)

假设你的意思是计算f(n)和g(n)的最大值的时间复杂度。计算两个数字的最大值是恒定时间操作*。计算左参数需要O(f(n)),右参数需要O(g(n))。所以O(max {f(n),g(n)})O(1)+ O(f(n))+ O(g(n))的时间复杂度简化为O(f(n)+ G(N))。

*注意:取最多两个值是计算机中的恒定时间操作,但计算机不是图灵机。对于大数字,确定两个数字的最大值在数字大小上是线性的。

假设你的意思是f(n)和g(n)的最大时间复杂度的顺序。然后你使用这样一个事实:由于最大运行时间将是O(f(n))或O(g(n))。并且因为O(f(n)+ g(n))> O(f(n))和O(f(n)+ g(n))> O(g(n))复杂性适用于每一种可能的结果。它有点便宜,但上限并不紧张。