0

アルゴリズムの初歩的な操作は、一番内側のループの中にある操作だとずっと思っていました。本やオンラインの記事でこれについての詳細をほとんど見つけられなかったのは、おそらくそれが些細なことだと思われていたからかもしれませんが、アルゴリズムの基本的な操作とは何かを説明しようとする少数の人々は、実行される操作であると常に言っています最も、つまり、最も内側のループの内側にあるものです。

したがって、このアルゴリズムでは次のようになります。

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        while (true) {
            int N = in.nextInt();
            if (N == 0)
                break;

            long cost = 0;
            int[] houses = new int[N];
            for (int i = 0; i < N; ++i)
                houses[i] = in.nextInt();

            for (int i = 0; i < N - 1; ++i) {
                cost += Math.abs(houses[i]);
                houses[i + 1] += houses[i];
            }
            System.out.println(cost);
        }
    }
}

houses[i] = in.nextInt();基本操作は最初の for 内の代入操作であると言いました。これは N 回実行されるのに対し、2 番目の for は N-1 回実行されるためです。

私の先生は、これは間違っていて、このアルゴリズムの初歩的な操作は 2 番目の for 内の操作であると言っています。

万が一、基本操作が最も内側のループ内にある操作ではない、または彼女が間違っているという例外がありますか?

4

2 に答える 2

0

このプログラムでは、2 番目の for ループが最初の for ループ内にありません。

このプログラムは家の配列の入力として N 個の数字を取り、実際のアルゴリズムは 2 番目の for ループのみにあり、配列の最初の i 項目のコストの実行中のカウントを i 番目のインデックスに保持します。

あなたの先生は正しいです。

于 2016-02-18T20:03:30.757 に答える