该算法的运行时间是否为log?

时间:2016-10-12 14:55:23

标签: algorithm performance time-complexity complexity-theory

我认为这个算法(或代码)运行log n次,因为每次要评估的条件数量都会减少一个常数因子。我对么?如果没有,你能告诉我运行时间是什么吗?

g(x) (* x > 1 is a real number *)

while x > 1 do
   x := x/3

1 个答案:

答案 0 :(得分:3)

让这个循环运行k次,这将是算法的时间复杂度,在结束时:
第一次迭代:x =(x / 3 1
第二次迭代:x =(x / 3 2
第3次迭代:x =(x / 3 3




第k次迭代:x =(x / 3 k )< = 1(即终止条件)

解决这个问题:采取边界条件:
(x / 3 k )= 1
因此k = Log 3 x
因此,时间复杂度为O(LogN) 希望这有帮助。