以下是我的代码。
如何对intDiv(m-n, n)
执行大O 分析,m
& n
是两个随机输入?
intDiv(int m, int n) {
if(n>m)
return 0;
else
return 1 + intDiv(m-n, n);
} //this code finds the number of times n goes into m
答案 0 :(得分:1)
取决于m
和n
的值。通常,任何一对(m,n)所涉及的步数,使得n,m> = 0都是 integer_ceil(m / n)。
因此,上述算法的时间复杂度:O([m/n])
,其中,[]
代表数字的细胞。
答案 1 :(得分:0)
我认为这完全取决于n
和m
。例如,如果n=1
则为O(m)
。当n=m/2
时,它就是O(log(m))
。