选择排序

2020-02-14  本文已影响0人  对三i

选择排序是很基础的一种排序算法,基本思路是每次循环找出当前未排序元素中最小(最大)的元素,把它和当前剩余元素中的第一个做交换,直到剩余元素为零,排序完成。

例如要对以下数组做选择排序
[3,1,2,4,6,5]
第一次循环,假设3是当前最小的元素,然后依次和后面的元素做比较,发现1是剩余元素中最小的,此时交换3和1的位置,此时数组变成
[1,3,2,4,6,5]
依次类推,当未排序元素只有一个时,已经默认是有序的了,排序就完成了

选择排序的java实现:

    public static void selectSort(int[] arr) {
        // 当循环到最后一个元素时,不需要再做比较
        for(int i = 0;i < arr.length - 1; i++) {
            // 假设当前i位置的元素是剩余元素中最小的
            int minIndex = i;
            
            // 从i+1开始,依次与minIndex位置的元素比大小,如果比它小,就更新minIndex
            for(int j = i + 1; j < arr.length; j++) {
                if(arr[j] < arr[minIndex]) {
                    minIndex = j;
                }
            }
            
            // 如果i位置的元素不是最小元素,则将i位置的元素与最小的元素交换位置
            if(i != minIndex) {
                int temp = arr[i];
                arr[i] = arr[minIndex];
                arr[minIndex] = temp;
            }
        }
    }
上一篇 下一篇

猜你喜欢

热点阅读