の実行時には、私はそれには2つのタスクを得ました私が得るより多くのポイント)。アレイデュープスキャナとアルゴリズム
2.)アルゴリズムの実行時間を分析します。
import java.util.Arrays;
public class Dupescanner
{
public static void main(String[] args)
{
int[] A = {1, 2, 3, 4, 5, 1, 2, 8, 8};
Arrays.sort(A);
System.out.println("Following numbers are duplicates:");
for (int n = 1; n < A.length; n++)
{
if (A[n] == A[n - 1])
{
System.out.println(A[n]);
}
}
}
}
出力:ここ
は、(。。私は、アルゴリズムの高速化/すべてで動作します動作しますので、配列をソートする必要がありました。このために私が代わりにそれを自分でコーディングのimport
を使用)最初のタスクのために私のコードです:
Following numbers are duplicates:
1
2
8
アルゴリズムは問題ありませんか?私はこれよりも速いものは考えられませんでした。あるいは、私はその仕事を理解していないと分かります。ちょうど言うなら、それは十分です: true - 重複があります。偽 - ない...ランタイム分析のために
は、私は確認されませんでしたが、私はそれは同様にしてみてくださいました:int[] A = {1, 2, 3, 4, 5, 1, 2, 8, 8};
は、n個のループ費のために1
コストとあればnもコストです。 結果はn^2 + 1になります。配列のソートがカウントされるかどうかはわかりませんが、除外します。
java 8をお持ちの場合、並列ストリームを使用することができます – mariusz2108
@ mariusz2108これはこの質問とは関係ありません。 – Kayaman
@tenepolis配列のソートはカウントを行います。コードを書いていないから除外することはできません。 – Kayaman