选择排序

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)

原文地址:https://www.cnblogs.com/guoyu1/p/11880668.html