このメソッドでは、1つの要素だけがソートされます。残りの要素はソートされません。私の選択に間違っていることを教えてください。ソートコード
実際の問題は、あなたの間違いは、あなたの内側のループがi+1
からではなく1
から始めるべきであるということです
private static int[] selectSort(int[] arr) {
int n = arr.length;
for (int i = 0; i < n - 1; i++) {
int min_Ele = i;
for (int j = 1; j < n; j++) {
if (arr[j] <= arr[min_Ele]) {
min_Ele = j;
}
}
if (i != min_Ele) {
int tmp = arr[i];
arr[i] = arr[i = min_Ele];
arr[min_Ele] = tmp;
}
}
return arr;
}
ヒント:たとえば、あなたの命名が間違っています。いけない何かを "arr"と呼んでください。例えば、 "sort to numbers"と呼んでください。そして、それをmin_eleと呼んではいけません( "_"を使ってダブル悪い!)...例えば "indexOfSmallestNumber"と呼んでください。ヒント:あなたはこのような困惑をprintステートメントを使って解決します。デバッガで小さなサンプルを実行することによって実行できます。あなたは私たちにそれをする必要はありません! – GhostCat
私はプログラミングに新鮮です。私はいくつかの助けが必要です – naveen