このコードを実行するための最も効率的な方法は何ですか?

Jesse Verbruggen

私の先生は、可能な限り最も効率的な方法でプログラムを作成し、そのためにスイッチケースを使用するように私たちに依頼しました。

プログラムはユーザーに入力を求めます。ユーザーが入力した内容に応じて、プログラムは一連の指示に従う必要があります。

入力が「A」または「a」の場合、配列はAからZにソートする必要があります。

入力が「Z」または「z」の場合、配列はZからAにソートする必要があります。

入力が「R」または「r」の場合、配列を逆にする必要があります。

配列はstring []です。

だから私はそれを使用する方が効率的かどうか疑問に思っています

switch (choice.ToLower())
{
    case "a":
        Array.Sort(array);
        break;
    case "z":
        Array.Sort(array);
        Array.Reverse(array);
        break;
    case "r":
        Array.Reverse(array);
        break;
}

または

 if (choice.ToLower() == "a" || choice.ToLower() == "z")
 {
     Array.Sort(array);
 }

 if (choice.ToLower() == "r" || choice.ToLower() == "z")
 {
     Array.Reverse(array);
 }

また、このコードをさらに最適化できるかどうか。

それで、スイッチケースを使用する最も効率的な方法、または上記のif構造で、その理由を説明しますか?

私は常にすべてのコードを最大限に最適化しようとしているので、興味があります。

ファビアン

さて、あなたは自分でそれをチェックすることができます:

class Program
{
    static void MyMethod1(int[] array, string choice)
    {            
        switch (choice.ToLower())
        {
            case "a":
                Array.Sort(array);
                break;
            case "z":
                Array.Sort(array);
                Array.Reverse(array);
                break;
            case "r":
                Array.Reverse(array);
                break;
        }
    }

    static void MyMethod2(int[] array, string choice)
    {            
        if (choice.ToLower() == "a" || choice.ToLower() == "z")
        {
            Array.Sort(array);
        }

        if (choice.ToLower() == "r" || choice.ToLower() == "z")
        {
            Array.Reverse(array);
        }
    }

    static int[][] CreateRandomArrays(int num, int length)
    {
        Random rand = new Random();
        int[][] arrays = new int[num][];

        for (int i = 0; i < arrays.Length; i++)
        {
            arrays[i] = new int[length];
            for (int i2 = 0; i2 < length; i2++)
                arrays[i][i2] = rand.Next();
        }

        return arrays;
    }

    static void Main(string[] args)
    {
        int[][] test1 = CreateRandomArrays(50, 200000);
        int[][] test2 = CreateRandomArrays(50, 200000);

        Stopwatch s = new Stopwatch();

        s.Start();

        for (int i = 0; i < test1.Length; i++) MyMethod1(test1[i], "z");

        s.Stop();
        Console.WriteLine(s.ElapsedMilliseconds);

        s.Restart();            

        for (int i = 0; i < test2.Length; i++) MyMethod2(test2[i], "z");

        s.Stop();

        Console.WriteLine(s.ElapsedMilliseconds);
    }
}

ご覧のとおり、結果はほぼ同じです。

1010 ms    vs    1008 ms

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

キーワード/関数を実行するための最も効率的な方法は何ですか?

分類Dev

WindowsとLinuxを同時に実行するための最も効率的な方法は何ですか?

分類Dev

時系列:サブセットのコードを書くための最も効率的な方法は何ですか?

分類Dev

Rails-レコードを作成または更新するための最も効率的な方法は何ですか(レコードが存在する場合)?

分類Dev

日および/または月および/または年ごとにレコードを取得するための最も効率的な方法は何ですか?

分類Dev

これは、このメソッドを作成するための最も効率的な方法ですか?

分類Dev

このデータフレームの欠損値を埋める最も効率的な方法は何ですか?

分類Dev

出席データを保存するための最も効率的または便利な方法は何でしょうか?

分類Dev

R:この式をRでコーディングする最も効率的な方法は何ですか?

分類Dev

マウスに最も近い要素を決定するための最も効率的な方法は何ですか?

分類Dev

このプログラムを書くための最も効率的な方法は何ですか?(詳細は中)

分類Dev

数学的シグマ和を実行するための最も速く、最も効率的で、Pythonの方法は何ですか?

分類Dev

データフレームで選択された行のセットで計算を実行する最も効率的な方法は何ですか

分類Dev

Elasticsearchからすべての結果を取得するための最も効率的な方法は何ですか?

分類Dev

複数のソートされた実行を含むファイルから行を取得する最も効率的な方法は何ですか

分類Dev

PairRDDで一意のペアを取得するためのSparkで最も効率的な方法は何ですか?

分類Dev

Slickで単一の結果を取得するための最も効率的な方法は何ですか?

分類Dev

FFMPEGでビデオのサイズを変更するための最も効率的な方法は何ですか?

分類Dev

Python numpyでこの擬似コードを効率的に実行するためのより高速な方法はありますか?

分類Dev

node.jsで「マルチスレッド」を実行するための最良かつ効率的な方法は何ですか?

分類Dev

XamarinFormsでcsvを検索するための最速かつ最も効率的な方法は何ですか?

分類Dev

何千ものmongodbドキュメント内で計算を行うための最も効率的な方法は何ですか?

分類Dev

CSVがあり、別のCSVの値で更新したい。これを行うための最も効率的な方法は何ですか?

分類Dev

Pythonで指定されたIDを持つ2次元リストの行(のコピー)を返す最も効率的な(最も速い)方法は何ですか?

分類Dev

Cordova / Phonegapは、大量のデータを保存するための最良かつ最も効率的な方法ですか?

分類Dev

1行のコードの実行時間を取得するための最良の方法は何ですか?

分類Dev

XAMLページに移動するための最も効率的な方法は何ですか?wp8

分類Dev

Matlabでこの行列演算を実行するためのより効率的なものはありますか?

分類Dev

新しいアクティビティを作成するための最も効率的な方法は何ですか

Related 関連記事

  1. 1

    キーワード/関数を実行するための最も効率的な方法は何ですか?

  2. 2

    WindowsとLinuxを同時に実行するための最も効率的な方法は何ですか?

  3. 3

    時系列:サブセットのコードを書くための最も効率的な方法は何ですか?

  4. 4

    Rails-レコードを作成または更新するための最も効率的な方法は何ですか(レコードが存在する場合)?

  5. 5

    日および/または月および/または年ごとにレコードを取得するための最も効率的な方法は何ですか?

  6. 6

    これは、このメソッドを作成するための最も効率的な方法ですか?

  7. 7

    このデータフレームの欠損値を埋める最も効率的な方法は何ですか?

  8. 8

    出席データを保存するための最も効率的または便利な方法は何でしょうか?

  9. 9

    R:この式をRでコーディングする最も効率的な方法は何ですか?

  10. 10

    マウスに最も近い要素を決定するための最も効率的な方法は何ですか?

  11. 11

    このプログラムを書くための最も効率的な方法は何ですか?(詳細は中)

  12. 12

    数学的シグマ和を実行するための最も速く、最も効率的で、Pythonの方法は何ですか?

  13. 13

    データフレームで選択された行のセットで計算を実行する最も効率的な方法は何ですか

  14. 14

    Elasticsearchからすべての結果を取得するための最も効率的な方法は何ですか?

  15. 15

    複数のソートされた実行を含むファイルから行を取得する最も効率的な方法は何ですか

  16. 16

    PairRDDで一意のペアを取得するためのSparkで最も効率的な方法は何ですか?

  17. 17

    Slickで単一の結果を取得するための最も効率的な方法は何ですか?

  18. 18

    FFMPEGでビデオのサイズを変更するための最も効率的な方法は何ですか?

  19. 19

    Python numpyでこの擬似コードを効率的に実行するためのより高速な方法はありますか?

  20. 20

    node.jsで「マルチスレッド」を実行するための最良かつ効率的な方法は何ですか?

  21. 21

    XamarinFormsでcsvを検索するための最速かつ最も効率的な方法は何ですか?

  22. 22

    何千ものmongodbドキュメント内で計算を行うための最も効率的な方法は何ですか?

  23. 23

    CSVがあり、別のCSVの値で更新したい。これを行うための最も効率的な方法は何ですか?

  24. 24

    Pythonで指定されたIDを持つ2次元リストの行(のコピー)を返す最も効率的な(最も速い)方法は何ですか?

  25. 25

    Cordova / Phonegapは、大量のデータを保存するための最良かつ最も効率的な方法ですか?

  26. 26

    1行のコードの実行時間を取得するための最良の方法は何ですか?

  27. 27

    XAMLページに移動するための最も効率的な方法は何ですか?wp8

  28. 28

    Matlabでこの行列演算を実行するためのより効率的なものはありますか?

  29. 29

    新しいアクティビティを作成するための最も効率的な方法は何ですか

ホットタグ

アーカイブ