首先,这是我的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)时间算法用于递归的斐波那契。抱歉,哈哈。
答案 0 :(得分:5)
Big O与自上而下/自下而上无关。
所有这些都可以通过谷歌搜索获得:)。