以下伪代码的递归关系和时间复杂度是什么?
temp = 1
repeat
for i=1 to n
temp = temp +1
n=n/2
until n>=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定理来解决递归关系,而应使用递归树方法,因为它是纯概念的,将帮助您建立概念,并可以在每种情况下使用。大师定理就像捷径一样,也有局限性。