私の問題は、セレクションに間違ったスワップ数があることです。 常に0または大きい番号を示します。指定された配列をソートするとき に、それは常に多数を表示したり、他のすべてのソートされていないテストは、常に0ソートされた配列の選択ソートにはいくつのスワップが必要ですか?
//this class is called selectionSort. It sorts a given array.
public class SelectionSort implements ISorter {
private int swaps;
public SelectionSort() {}
@Override
public ISortStats sort(int[] a) {
long time = System.nanoTime();
int swapping = 0;
int numOfComparisons = 0;
for (int i = 0; i < a.length; i++) {
int min = i;
for (int j = i + 1; j < a.length; j++) {
numOfComparisons++;
if (a[min] >= a[j]) {
min = j;
}
}
swapping = swap(a, i, min, this.swaps);
}
long endTime = System.nanoTime();
SortStats ss = new SortStats("Selection Sort",
a.length,
numOfComparisons,
swapping,
(endTime - time));
return ss;
}
private int swap(int[] a, int i, int j, int swapping) {
int temp = a[i];
a[i] = a[j];
a[j] = temp;
return swapping++;
}
}
を更新されることはありませんので、このインデントは...非常識です。 –
もうはや:)。 –
は完全にはわかりませんが、これは私には疑わしいと思われます: 'swapping = swap(a、i、min、this.swaps);'おそらく、あなたは 'swap = swap(a、i、min、swapping);という意味ですか? – Turing85