欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

选择排序原理及思路

程序员文章站 2022-03-24 15:45:14
...

1.选择排序原理

选择排序其实就是选择出未排序部分的最小值,进行排序操作

话不多说,直接上图

选择排序原理及思路

图中的黄色部分为我们已经排好序的数组部分

图中的红色部分为未排好序数组中遍历过的最小值

图中的蓝色部分为未排序的数组部分

2.思路

遍历数组中未排序的部分,取出最小值,和未排序的第一个交换位置,然后重复此操作

代码如下

/**
     * 选择排序
     */
    public static int[] selectionSort(int[] arr){

        //临时变量,用于临时存放
        int temp;
        for(int k = 0; k < arr.length-1;k++) {
            //定义数组中最小值的下标,根据下标就能找到数组中的最小值,每一轮开始就重新定义最小值
            int minIndex = k;
            for (int i = k+1; i < arr.length; i++) {
                //如果遇到比之前最小值小的,就重新赋值下标位置
                if (arr[minIndex] > arr[i]) {
                    minIndex = i;
                }
            }
            //如果最小值不是当前值,则进行交换
            if(k != minIndex) {
                temp = arr[k];
                arr[k] = arr[minIndex];
                arr[minIndex] = temp;
            }
        }
        System.out.print(Arrays.toString(arr));
        return arr;
    }