【发布时间】:2011-09-23 05:59:59
【问题描述】:
算法/程序是否有可能具有相同的最坏情况和最佳情况时间?
例如:
public static int factorial(int number)
{
factorial = 1;
for (i = 1; i <= number; i++)
factorial = factorial * i;
}
这是阶乘问题的程序段,我试图解决时间复杂度问题。它似乎没有最坏和最好的情况时间,因为无论你有什么输入,它仍然会通过其余的代码,这与你有 if-else 语句时不同。
如果是这种情况,我是否应该假设我从这段代码中得到的结果是最好的、最坏的和平均的情况时间?
我做对了吗?
public static int factorial(int number)
{
factorial = 1; // 1
for (i = 1; i <= number; i++) // 1+3n
factorial = factorial * i; // 2
return factorial; // 1
}
最坏情况/最佳情况: 3n+5
大 - O : O(n)
【问题讨论】:
标签: java algorithm time complexity-theory