Algorithm Java-Big-O表示法(自下而上或自上而下的方法)

Algorithm Java-Big-O表示法(自下而上或自上而下的方法),algorithm,big-o,Algorithm,Big O,首先,这是我的O(n)代码: import java.util.*; 公共类BigO{ 公共静态void main(字符串[]args) { 扫描仪输入=新扫描仪(系统输入); System.out.print(“输入一个数字:”); 字符串userInput=in.nextLine(); int mNum=Integer.parseInt(用户输入); int y=新的BigO().线性(mNum); 系统输出打印项次(y); } //O(n)-线性 公共整数线性(整数n){ 整数和=0; 对

首先,这是我的O(n)代码:

import java.util.*;
公共类BigO{
公共静态void main(字符串[]args)
{
扫描仪输入=新扫描仪(系统输入);
System.out.print(“输入一个数字:”);
字符串userInput=in.nextLine();
int mNum=Integer.parseInt(用户输入);
int y=新的BigO().线性(mNum);
系统输出打印项次(y);
}
//O(n)-线性
公共整数线性(整数n){
整数和=0;
对于(int j=0;j
如果这是一个愚蠢的问题,我很抱歉,因为我已经很长时间没有使用大O表示法了,我想确定一下,但不管我上面有什么,这是自下而上还是自上而下的计算?如果两者都不是,我如何处理其中一个(或两个)?请让我知道。谢谢

更新:
好的,没关系,我问过我班上的一些朋友和教授,他把我们的问题写错了。他纠正了,意思是说我们应该用这种O(n)时间算法来递归斐波那契。很抱歉,lol。

大O与自上而下/自下而上无关

  • 第一种是表示算法复杂性和运行时间的方法,取决于输入的大小
  • 第二种是指将问题分解为子问题以获得解决方案时所采取的方法

所有这些都可以通过谷歌搜索获得:)。

大O与自顶向下/自下而上无关

  • 第一种是表示算法复杂性和运行时间的方法,取决于输入的大小
  • 第二种是指将问题分解为子问题以获得解决方案时所采取的方法

所有这些都可以通过谷歌搜索获得:)。

我发誓我一点也不懂你的问题!你不懂哪一部分?没有机械程序来确定
Big-O
Big-O
解释得很好。@Razvan看起来有些人无法解释OP是在混合土豆和齿轮。什么这些有共同之处吗?没什么,这是必须解释的。ZetaX9,是的,这是一个大O符号=O(n)的代码,如果你是这么问的话。你的线性算法很简单,我不知道如何用自上而下或自下而上来描述它。我发誓我一点也不懂你的问题!你不懂哪一部分?没有机械程序来确定
大O
。很好地解释了
大O
。@Razvan lo像有些人一样的OK无法解释OP是土豆和齿轮的混合。它们有什么共同点?没什么,这是必须解释的。ZetaX9,是的,这是一个大O符号=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;
 }