1

私は自分のコードでこれらを使用していましたが、手動でコード化された手順ほど高速ではない可能性があると思います。を検索したところ、配列を手動でコピーするよりも System.arraycopy() の方が実際に高速であるという記事がいくつか見つかりました。それが正しいかどうかはよくわかりません。

また、関数 Array.sort() は、コードで記述したものと比較して高速ですか?

// I am merging the arrays here into a new integer array called newarray3 
    int[] newarray3= new int[input1.length + input2.length];
    System.arraycopy(input1, 0, newarray3, 0, input1.length);
    System.arraycopy(input2, 0, newarray3, input1.length, input2.length);

    //sorting the array.
    Arrays.sort(newarray3);

input1 と input2 は、マージされてからソートされる 2 つの配列です。この方法でコーディングするとプログラムが遅くなるかどうかを知りたいです。それとも何か他のものかもしれません。助けてください。

4

2 に答える 2

2

System.arraycopy は、一度に要素に対して「一括」データ移動を実行できるため、事実上すべての状況で手動で実行できるよりも高速です。主な例外は比較的小さな配列です。これは、使用するアルゴリズムを選択する arraycopy 内部の初期処理が重要であるためです。

すべての条件で最適な単一の並べ替えアルゴリズムはありません。

于 2013-04-07T14:38:23.830 に答える