指数函数的大O分析

时间:2011-11-17 07:37:27

标签: big-o

对于以下功能,

http://i.imgur.com/OoGgp.png

我做了

但我一定做错了......答案应该是O(log n)。我在Big O很糟糕...还没有完全理解主要定理,这在学校还没有教过。他们只教授递归树

2 个答案:

答案 0 :(得分:2)

如果我们假设所有算术运算都在O(1)中完成,那么: 当我们看到每个函数调用时,我们将exp除以2.当我们用exp达到零时 - 我们完成了。 我们可以在没有达到零的情况下将exp分成两次?这是日志exp。所以log exp函数调用* O(1)给出log(exp)复杂度。 找到几何序列的总和,你找到了另一个问题的答案:完成了多少节点(所有兄弟姐妹都存在)有n片叶子的树: 假设n = 4:

1'
|_1''
  |_1'''
  |_2'''
|_2''
  |_3'''
  |_4'''

你在这样的树中找到节点的数量

答案 1 :(得分:1)

您在数学开始时所做的假设是说您在函数调用Exp(n)中花了“n”时间,在Exp(n/2)中“n / 2”时间,“n / 4”时间Exp(n/4)等等......

但实际上,您只在每个函数调用中花费O(1)个恒定时间。那么,你有log(n)个恒定时间的函数调用。尝试使用这个开始假设来运行剩下的数学运算,看看你得到了什么。