我已经研究了一些计算时间复杂度的基本概念。我想知道以下代码的时间复杂度。
我认为时间复杂度将为O(log 3 n * n 2)。可能仍然是错误的,我想知道确切的答案以及如何得出相同的答案。谢谢 :)
function(int n){
if(n == 1) return;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++)
printf("*");
function(n-3);
}
两个具有n次迭代的嵌套循环给出O(n ^ 2)。递归调用函数本身的时间为O(n) -时间,因为它针对常数3减小n,因此称为n / 3 + 1 = O(n)倍。总共是O(n ^ 3)。
如果以n / 3的值调用该函数,则结果中的对数常数将为常数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句