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

比较好懂的选择排序(java)

程序员文章站 2022-07-10 17:32:36
选择排序介绍选择排序的核心思想就是每次遍历我都确定一个值,第一次遍历我把最小值确定下来放在最第一个,然后第二次遍历我把第二小的确定下来放在第二个。每次确定一个值我们就可以少考虑一个值。这就是选择排序图解(来自参考资料)代码实现 public static void main(String[] args) { int[] arr = {2, 1, 5, 4, 6, 3, 0}; selectSort(arr); } public static...

选择排序

介绍

选择排序的核心思想就是每次遍历我都确定一个值,第一次遍历我把最小值确定下来放在最第一个,然后第二次遍历我把第二小的确定下来放在第二个。每次确定一个值我们就可以少考虑一个值。这就是选择排序

图解(来自参考资料)

比较好懂的选择排序(java)

代码实现

 public static void main(String[] args) {

        int[] arr = {2, 1, 5, 4, 6, 3, 0};
        selectSort(arr);

    }

    public static void selectSort(int[] arr) {

        for (int i = 0; i < arr.length; i++) {
        	// 设定当前遍历的数据是最小值并保存索引
            int minIndex = i;
            int min = arr[i];
            // 遍历找出最小值
            for (int j = i + 1; j < arr.length; j++) {
            	// 如果有值比最小值小,就把min改为当前值
                if (min > arr[j]) {
                    min = arr[j];
                    minIndex = j;
                }
            }
            // 遍历完后确定了最小值,如果
            // 最小值不是当前值最小值和当前值交换位置。
            if (minIndex != i) {
                arr[minIndex] = arr[i];
                arr[i] = min;
            }
        }
        System.out.println(Arrays.toString(arr));
    }

复杂度

时间复杂度O(n^2)
空间复杂度O(1)

总结

选择排序可以把数组内部看成两个数组,一开始左边的数组没有值,第一轮确定好最小值后把值加进左边的数组,然后继续遍历以此类推。

参考资料

点击传送
https://www.cnblogs.com/skywang12345/p/3597641.html

秃头萌新一枚,多多关照。

本文地址:https://blog.csdn.net/w7335123/article/details/110238968