首先,这是我的 O(n) 代码:
import java.util.*;
public class BigO{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
System.out.print("Enter a number: ");
String userInput = in.nextLine();
int mNum = Integer.parseInt(userInput);
int y = new BigO().linear(mNum);
System.out.println(y);
}
//O(n) - Linear
public int linear(int n) {
int sum = 0;
for (int j = 0; j < n; j++) {
sum++;
System.out.print(sum + " ");
}
return sum;
}
如果这是一个愚蠢的问题,我深表歉意,因为我已经很长时间没有使用大 O 表示法了,我想确定一下,但是对于我上面的任何内容,它是自下而上还是自上而下的计算?如果两者都不是,我该如何处理其中一个(或两者)?请告诉我。谢谢。
更新: 好吧,没关系,我问了我班上的一些朋友以及教授,他错误地写下了我们的问题。他纠正了它,意思是说我们应该对递归斐波那契使用这种类型的 O(n) 时间算法。对不起,哈哈。