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)