【问题标题】:Is the running time of this algorithm log n?这个算法的运行时间是 log n 吗?
【发布时间】:2016-10-12 14:55:23
【问题描述】:

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

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

while x > 1 do
   x := x/3

【问题讨论】:

  • 是的,记录一下。
  • 是的。它是 O(log n)。
  • 照片完成 :-) @Jean-FrançoisFabre 似乎快了 3 秒。

标签: algorithm performance time-complexity complexity-theory


【解决方案1】:

让这个循环运行k次,这将是算法的时间复杂度,
结束时:
第一次迭代:x= (x/31)
第二次迭代:x= (x/32)
第三次迭代:x= (x/33)
.
.
.
.
第 k 次迭代:x=(x/3k)

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

【讨论】:

  • 太棒了。它说明了答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 2020-01-23
  • 1970-01-01
  • 1970-01-01
  • 2016-01-27
相关资源
最近更新 更多