Algorithm multiply(n, m)
PRE: n :: Integer, greater than or equal to 0
m :: Integer
POST: ????
RETURNS: the product, n * m
if (n = 0)
return 0
else if (n is even)
return multiply(n/2, m+m)
else
return m + multiply((n-1)/2, m+m)
endif
此函数O(logn)是否因为在每个递归情况下都将n除?我正在为期中学习,我想确保自己做的正确。先感谢您。
答案 0 :(得分:0)
是的,您是正确的。
尽管这里是这种情况,但请注意,递归调用中的除数并不总是表示对数复杂性。