1

まず、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;
 }

私は長い間big-O表記を行っていないので、これがばかげた質問であるかどうかをお詫びします。確認したいのですが、上記の計算は、ボトムアップまたはトップダウンのどちらでしょうか。どちらでもない場合、どちらか一方(または両方)にアプローチするにはどうすればよいですか?私にお知らせください。ありがとう。

更新: 申し分なく、気にしないでください、私は私のクラスにいる私の友人の何人かと教授に尋ねました、そして彼は私たちの問題を間違って書き留めました。彼はそれを修正し、再帰的フィボナッチにこのタイプのO(n)時間アルゴリズムを使用することになっていると言うつもりでした。その笑について申し訳ありません。

4

1 に答える 1

5

ビッグオーはトップダウン/ボトムアップとは何の関係もありません。

  • 1つ目は、入力のサイズに応じて、アルゴリズムの複雑さと実行時間を表す方法を示しています。
  • 2つ目は、解決策に到達するために問題をサブ問題に分割するときに採用されるアプローチを指します。

これらはすべて、Google検索を介して非常にアクセス可能です:)。

于 2012-08-24T20:32:03.357 に答える