以下代码的运行时间是多少?

时间:2014-09-21 17:31:09

标签: big-o time-complexity

运行时间不是n-i,只是O(n)?或者我在这种情况下不考虑一切?

i <- c
while i < n do
i <- i*c
end while

2 个答案:

答案 0 :(得分:3)

它是否与n的基数c对数?

你基本上是乘以i,直到它达到n的值。

答案 1 :(得分:2)

此算法的运行时间为 O(log n)。它不会是n-i,因为您没有通过添加或减去值来递增循环计数器。相反,你是用c递增循环计数器,所以你在每次迭代中用c来缩放它。因此,它可以进行的最大迭代次数是log_c(n)。