私はカップルソートアルゴリズムを書いています。少なくとも並べ替え時間を比較したい。しかし、StoogeSortを除くすべてのソート時間が最初にループした後。私はバックグラウンドで最適化していると思うが、どの測定法を検討すべきか?最初のものか他のものか?なぜこのことが起こっているのですか?ソート時間は常に最初のソートと異なります
public static void main(String[] args) {
RandomNumber rn = new RandomNumber();
Scanner sc = new Scanner(System.in);
while(true){
System.out.println("Enter the input size.");
int n = sc.nextInt();
int[] experimentalArray = rn.experimentalArrayGenerator(n);
Stopwatch sw1 = new Stopwatch();
StoogeSort ss = new StoogeSort(experimentalArray.clone());
System.out.println("StoogeSort : " + sw1.elapsedTime() + " µs");
Stopwatch sw2 = new Stopwatch();
RadixSort rs = new RadixSort(experimentalArray.clone());
System.out.println("RadixSort : " + sw2.elapsedTime() + " µs");
Stopwatch sw3 = new Stopwatch();
ShakerSort shs = new ShakerSort(experimentalArray.clone());
System.out.println("ShakerSort : " + sw3.elapsedTime() + " µs");
Stopwatch sw4 = new Stopwatch();
MaximumSubarray ms = new MaximumSubarray();
int a = ms.maxSubArraySum(experimentalArray.clone());
System.out.println("MaximumSubarray : " + sw4.elapsedTime() + " µs");
System.out.println("------------------------------------------------------");
}
}
4ループ後の出力:
乱数配列をソートすることはほとんど同じ時間を要しません。 –
しかし、これは変です。他の人とはちょうど最初のもの。 – Pareidolia
配列[1,2,3,4,5,6,7,8,9,10]を例にとります。それをソートするにはアルゴリズムが何回反復するのでしょうか?次に配列[10,5,3,7,2,8,1,9,6,4]を考えてみましょう。同じ時間がかかりますか? –