选择排序

≯℡__Kan透↙ 提交于 2020-02-26 02:37:49

1.选择排序的基本原理
第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。

2.图解
按从小到大的顺序为例
选择排序
如图,将整个序列分为有序序列和无序序列。蓝色部分是每次进行比较的内容,将相对小的数字交换到前面;橙色部分则是已排好的序列。

3.代码实现

public static void selectSort(int[] array) {   
        // [0, bound) 已排序区间
        // [bound, size) 待排序区间
        for (int bound = 0; bound < array.length - 1; bound++) {
            for (int cur = bound + 1; cur < array.length; cur++) {
                // 使用打擂台的方式找到待排序区间中的最小值
                // bound 位置的元素就是擂台
                if (array[bound] > array[cur]) {
                    // 打败擂主, 就和擂主交换
                    int tmp = array[cur];
                    array[cur] = array[bound];
                    array[bound] = tmp;
                }
            }
        }
    }
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!