マルチアレイ上でメソッドを並べ替えるための実行時間
-
29-09-2019 - |
質問
同じ100,000の乱数アレイをすべて並べ替えているさまざまな並べ替え方法があります。
次の方法を使用してそれぞれのランタイムを見つけます
long insertionStart = System.currentTimeMillis();
arr.Clone(iniArr);
arr.insertionSort();
long insertionFinal = System.currentTimeMillis() - insertionStart;
ランダム数の矢印については次のとおりです
int maxSize = 100000; // array size
Sortarr arr, iniArr; // reference to array
arr = new Sortarr(maxSize); // create the array
iniArr = new Sortarr(maxSize);
// insert random numbers
Random generator = new Random();
for (int i = 0; i < maxSize; i++) iniArr.insert(generator.nextInt());
それぞれが1つだけでなく100の配列を並べ替えて、各配列の時間をカウントできるようにこれを変更するにはどうすればよいですか?例えば。 run1-23ms; run2-25ms; ... run100-22ms
編集:最後にやることが1つあります。したがって、各反復はいくつかの方法で配列をソートします。挿入、マージ、クイックソートなど。挿入= 300ms、マージ= 200ms、およびQuick = 100msと言ってください。反復ごとに、どの方法が最も速くソートされたかを見つける必要があります。
これは、より低いプログラミングクラスで1000回行うシンプルなMin/Maxタイプのものであることを知っています。各値を配列に投げて配列を使用する方が簡単ですか? (実際に何であれ、Java構文は初めてです。)
解決
現在、アレイを作成し、さまざまな機能を使用して繰り返しソートするように見えます。
そのすべてをループに配置する必要があります。
int maxRuns = 100;
int maxSize = 100000; // array size
for (int run=0; run<maxRuns; run++) {
Sortarr arr, iniArr; // reference to array
arr = new Sortarr(maxSize); // create the array
iniArr = new Sortarr(maxSize);
// insert random numbers
Random generator = new Random();
for (int i = 0; i < maxSize; i++) iniArr.insert(generator.nextInt());
long insertionStart = System.currentTimeMillis();
arr.Clone(iniArr);
arr.insertionSort();
long insertionFinal = System.currentTimeMillis() - insertionStart;
/* <more code goes here> */
}
インデックスを使用できます run
結果を印刷しながら。
他のヒント
あなたはおそらく次のようなことをしているでしょう:
for (int try = 0; try < 100; try++) {
iniArr = new Sortarr(maxSize);
// insert random numbers
Random generator = new Random();
for (int i = 0; i < maxSize; i++) iniArr.insert(generator.nextInt());
long insertionStart = System.currentTimeMillis();
arr.Clone(iniArr);
arr.insertionSort();
long insertionFinal = System.currentTimeMillis() - insertionStart;
// print out the time, and/or add up the total
}
事前に初期化が必要です。アレイがソートされる前にクローン化される理由がわからないと思います。その配列を直接ソートできますか?
所属していません StackOverflow