1、选择排序思想:每次遍历数组,找到数组的最小值,放到对应位置。即,一次排序确定一个元素的位置,直至所有元素位置确定为止。
2、代码如下
public void selectionSort(int[] arr) {
//外层循环控制排序次数
for (int i = 0; i < arr.length; i++) {
//内层进行比较,每次循环找到一个最小值放到对应位置
int index = i;
for (int j = i; j < arr.length; j++) {
//找到最小元素所在的索引
index = arr[j] < arr[index] ? j : index;
}
//将这一趟遍历的最小值放到对应位置
int temp = arr[i];
arr[i] = arr[index];
arr[index] = temp;
}
}
3、时间和空间复杂度
时间复杂度:O(n^2)
空间复杂度:O(1)