选择排序(java)

选择排序

选择排序是默认前面都是已经排序好的,然后从后面 选择最小的放在前面排序好的的后面,首先第一轮循环的时候默认的排序好的为空,然后从后面选择最小的放到数组的第一个位置,第二轮循环的时候默认第个元素是已经 排序好的,然后从剩下的找出最小的放到数组的第二个位置,第三轮循环的时候默认前 两个都是已经排序好的,然后再从剩下的选择一个最小的放到数组的第三个位置,以此 类推。还是上面的序列,我们看一下选择排序是怎么做的:

选择排序(java)_第1张图片

动画演示 :

选择排序(java)_第2张图片

    public static void SelectSort(int[] nums){
        int min;
        for (int i = 0;i < nums.length;i++){
            min = i;
            for (int j = i + 1;j < nums.length;j++){
                if (nums[i] > nums[j]){
                    min = j;
                }
            }
            if (i != min){
                int temp = nums[i];
                nums[i] = nums[min];
                nums[min] = temp;
            }
        }
    }

平均时间复杂度:O(n²)

空间复杂度:O(1)

稳定性:选择排序是不稳定算法

你可能感兴趣的:(算法,数据结构,java,排序算法,leetcode)