ソートの選択
4608 ワード
ソートの選択
ソートを選択することは、合計をクエリーし、最も前の数を最小値で交換し、前から入力するソート方法です.
まず、最初の位置(すなわち9が位置する位置)をiとし、jはiから配列の最小インデックス(minIndex)を抽出する.j 8から配列の探索を開始し,最小のインデックスを見つけ,1が存在する位置が最小であることを発見する.だからminIndexは2(1が存在する配列要素の位置!).最初の位置は1です
そして,2番目の位置(8がある位置)はi,jが最小の要素でインデックスを求め,minIndexが2の位置,すなわち4となる.minIndexとiの置換
次は9の位置です.iが2になる.最小インデックスは、3が存在する場所であるため、iによって置き換えられます.
次のiは、9を指す1つ追加されます.8がもっと小さいので交換します
今ではすべての比較と交換が終わりました.昇順ソートが表示されます.
時間の複雑さ
繰り返し文→O(N 2)O(N^2)O(N 2)
インプリメンテーション
class Solution {
public int[] selectionSort(int[] nums) {
for (int i = 0; i < nums.length; i++) {
int min = 2147483647, idx = 0;
for (int j = i; j < nums.length; j++) {
if (nums[j] < min) {
min = nums[j];
idx = j;
}
}
// 앞의 최소값이 있어야할 자리에 이미 최소값이 있지 않은 경우
if (i != idx) {
nums[idx] = nums[i];
nums[i] = min;
}
}
return nums;
}
}
Reference
この問題について(ソートの選択), 我々は、より多くの情報をここで見つけました https://velog.io/@shiningcastle/선택-정렬テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol