選択ソートは、シンプルで直感的なソート アルゴリズムです。そのアルゴリズムの原理は、まず未ソートのシーケンス内で最小 (最大) の要素を見つけ、それをソート済みのシーケンスの開始位置に格納し、その後、残りの未ソートの要素から選択することです。要素の中から最小 (最大) の要素を検索し、それを並べ替えられたシーケンスの最後に格納するなど、すべての要素が並べ替えられるまで続きます。
合計「配列の数 - 1」ラウンドの選択ソートがあり、各ラウンドのソートが 1 サイクルになります。サイクルの規則は次のとおりです。
1) まず、現在のサイクルの最初の数値が最小の数値であると仮定します。
2) 次に、それを後続の各数値と比較し、現在の数値よりも小さい数値があることが判明した場合は、最小の数値を再決定し、添え字を取得します。
3) 配列の最後まで移動すると、このラウンドの最小値が取得されます。
4) 現在のループの最初の番号と交換します。
例えば:
importjava.util.Arrays;publicclassMain{publicstaticvoidmain(String[]args){int[]arr=newint[]{19,26,8,35,41,77};for(inti=0;i<arr.length- 1;i++){//各ループは最小の数値を見つけます intminIndex=i;//最小の数値の添字を記録します intminNum=arr[i];//最小の数値を記録します for(intj=i+1;j< arr.length;j++){//各ループは最小の数値を見つけます if(arr[j]<minNum){//現在の数値が最小数値より小さい場合は、最小数値を更新します minNum=arr[j]; / /最小値を更新 minIndex=j;//最小値の添字を更新}} arr[minIndex]=arr[i];//最小値を前に置く arr[i]=minNum;//置くフラグビットを最小値の元の位置に戻す}for(inti=0;i<arr.length;i++){System.out.println(arr[i]);}}}
実行結果は次のとおりです。
81926354177