3.选择排序
算法描述:O(n^2),不稳定
- 初始状态:无序区为R[1…n],有序区为空。
- 第i趟排序(i=1,2,3…n-1)开始时,当前有序区和无序区分别是R[1,…I-1]和R[i,…n]。该趟排序从当前无序区中选出关键字最小的记录R[K],将它与无序区的第1个记录R交换,使R[1…i]和R[i+1…n]分别变为记录个数增加1个的新有序区和记录个数减少一个的新无序区
//选择排序
public static int[] selectSort(int[] arr) {
for (int i = 1; i < arr.length; i++) {
int temp;
int minIndex = i;
for (int j = i + 1; j < arr.length; j++) {
if (arr[j] < arr[minIndex]) {//找最小值
minIndex = j;//将最小值的标号给minIndex
}
}//进行交换
temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
return arr;
}