递归关系和时间复杂度

时间:2019-02-22 14:42:05

标签: algorithm time-complexity complexity-theory

以下伪代码的递归关系和时间复杂度是什么?

temp = 1 
repeat 
    for i=1 to n 
        temp = temp +1 
    n=n/2
until n>=1

1 个答案:

答案 0 :(得分:0)

当我们处理诸如Big-Oh,Omega和Theta的渐近符号时,我们不考虑常数。毫无疑问,您的时间复杂度会变成

    n + n/2 + n/4 + ... + 1

但是,如果您增加这个递减的GP系列,您将得到精确的答案,等于c * n,其中c将是一些大于1的常数。但是在我前面所说的渐近符号中,常数并不重要,因此, c为2或50或100或10000或其他任何值,它将仅为O(n)。

另一件事,请不要使用Master定理来解决递归关系,而应使用递归树方法,因为它是纯概念的,将帮助您建立概念,并可以在每种情况下使用。大师定理就像捷径一样,也有局限性。