选择排序
1、找出数组中最小的元素
2、将其与数组中第一个数交换
3、从数组中第二个数开始查找,找出最小的元素,与数组第二个数交换
……
因为每次需要检查数组中的每一个元素,所以每次操作的时间为O(n),并且需要操作n次,所以选择排序总时间为O(n²)
public static void selectionSort(int[] arr){
int smallest; //最小值
int smallest_index; //最小值索引
for (int j = 0;j<arr.length-1;j++) {
smallest = arr[j]; //假设检查的第一个数为最小值
smallest_index = j;
//找出最小值
for (int i = j+1; i < arr.length; i++) {
if (arr[i] < smallest) {
smallest = arr[i];
smallest_index = i;
}
}
//交换
arr[smallest_index] =arr[j];
arr[j] = smallest;
}
}