【发布时间】:2019-05-08 20:53:44
【问题描述】:
以下递归算法的复杂度是多少?
void rec(n){
if(n<=0)
return;
else
rec(n/3)+rec(n/2);
}
【问题讨论】:
-
它没完没了? n怎么会变成负数或零?
-
@StrangerintheQ:如果是整数,非常容易(
1/2在我知道的大多数语言中产生零)。如果浮动,将需要更多;如果双倍,则更长(例如1/1e1000通常为零)。遇到麻烦的唯一方法是,如果有理数以弹性整数作为提名和分母(如 Ruby 的Rational)。
标签: algorithm time-complexity master-theorem