请看我根据一个学校的例子写的代码。
public class Test {
public static void main(String [] args)
{
int number = 0;
int [] array = new int[number+1];
array[number] = 0;
methodName(number, array);
}
public static void methodName(int n, int[] b )
{
if (n == 0)
{
System.out.println(" b is : " + b);
return;
}
else
{
b[n-1] = 0;
methodName(n-1, b);
b[n-1] = 1;
methodName(n-1, b);
}
}
}我试图计算这段代码的最佳和最坏的时间复杂度。据我所知,最好的情况是O(1)。我很难确定最坏的情况。else循环中有四个基本操作。我知道这是一个逐步增长的函数,我有一种感觉,它接近O(!n)。
谢谢您抽时间见我。
发布于 2019-11-08 11:23:10
如果methodName不是从main以外的任何地方调用的,那么它总是O(1)
https://stackoverflow.com/questions/58761659
复制相似问题