ソート原則
いわゆる選択は、ソート順で指定された並べ替えられていない配列要素から最小値を見つけることであり、最小注文は既に全て排出されるまでの背後にある要素でソートされます。ソート処理のために、最初にソートされていない要素を残りの最小屈折率、及び二番目の配列を見つけ、配列インデックスの最小値、および配列及び最小スイッチング位置の最初の要素を見つけます。要素および最小位置を切り替え、および並べ替えのすべての要素が終了するまで、上記の手順を繰り返します。
時間複雑
- かどうかのアレイは、正のシーケンスであるか、または逆の順序で、ときにi番目のトラバーサル、NI比較の必要性として、全てソートダウン(N-1)* N必要/ 2の比較だけでなく、交換エレメントの位置に必要とする、モバイルの総数/ 2回3N *(N-1)であり、時間の複雑さはO(N 2)です。
ソートコード
public class SelectionSort {
/**
* 选择排序
*/
public void selectionSort(int[] arr, int a, int n) {
//寻找数组中[a,n)区间的最小值
for (int i = a; i < n; i++) {
//定义一个最小值的下标
int min = i;
for (int j = i + 1; j < n; j++) {
//利用第一个数与其余的比较找出最小值的下标
if (arr[min] > arr[j]) {
min = j;
}
}
//如果最小下标不等于当前元素,那么就说明找到了最小元素
if (min != i) {
int temp = arr[i];
arr[i] = arr[min];
arr[min] = temp;
}
}
}
}