/**
* 选择排序 : 原地排序算法(空间复杂度O(1)) 不稳定 时间复杂度为O(n*n)
*/
public class SelectSort {
public static void sort(int[] arr){
for(int i=0; i<arr.length-1; i++){
int minIndex = i; // 记录最小值的下标
for(int j=i+1; j<arr.length; j++){ // 每次循环找到 当前参与循环数组中最小的值的下标
if(arr[minIndex] > arr[j]){
minIndex = j;
}
}
// 交换数值
if(i != minIndex){
int temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
}
public static void main(String[] args) {
int[] arr = {9,7,5,3,2,1,8,10};
sort(arr);
for (int i : arr) {
System.out.print(i+" ");
}
}
}