排序-选择排序

拿一个元素(当前元素)和剩下的(除去排好序的)比较,获得最小值索引 然后和当前元素交换

注意:
开始取a[i] 为a[min] ,a[min] 和a[i→n]第一个比较 ,不过不是和全部的比较
因为a[i→n]比a[0]小的有很多,
应该是取到一个比a[min]小的值 要把当前索引赋值给min 然后继续遍历
遍历完内层循环后就会得到最小值的索引,然后和a[i]交换

    @Test
    public void test(){
        int[] a = {4, 2, 5, 3, 1, 0};
        selection(a);
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i] + ",");
        }
    }
    public void selection(int[] a){
        for (int i = 0; i < a.length; i++) {
            int min = i;
            for(int j = i + 1; j < a.length; j++){
                if(less(a[j], a[min])){
                    min = j;
                }
            }
            exch(a, i, min);
        }
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容