当前位置:网站首页>选择排序

选择排序

2022-06-10 22:38:00 Li_XiaoJin

选择排序的相关内容。

选择排序的思路:

第一轮,找到最小的元素,和数组第一个数交换位置。

第二轮,找到第二小的元素,和数组第二个数交换位置...

直到最后一个元素,排序完成。

https://lixj.fun/upload/2021/07/%E9%80%89%E6%8B%A9%E6%8E%92%E5%BA%8Fgif-26451cec2bf841be838833ed2f27462c.gif

算法复杂度:O(n²)

算法空间复杂度:O(1)

算法稳定性:不稳定

public class SelectSort {
    public static void sort(int[] arr) {
        for (int i = 0; i < arr.length; i++) {
            int minIndex = i;
            for (int j = i; j < arr.length; j++) {
                if (arr[j] < arr[minIndex]) {
                    minIndex = j;
                }
            }

            if (minIndex != i) {
                swap(arr, i, minIndex);
            }
        }

    }

    private static void swap(int[] arr, int i, int j) {
        int temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    }

    public static void main(String[] args) {
        int[] arr = {10,7,2,4,7,62,3,4,2,1,8,9,19};
        sort(arr);
        System.out.println(Arrays.toString(arr));
    }
}

Copyright: 采用 知识共享署名4.0 国际许可协议进行许可 Links:https://lixj.fun/archives/选择排序

原网站

版权声明
本文为[Li_XiaoJin]所创,转载请带上原文链接,感谢
https://cloud.tencent.com/developer/article/2020543