美文网首页
初学选择排序

初学选择排序

作者: TG77 | 来源:发表于2019-10-19 17:35 被阅读0次

    1.算法描述
    初始状态:都是无序
    第一次排序:拿第一个元素与后面所有元素对比,将最小值的下标记录,然后与拿来对比的元素的下标对换,这样最小的就会在最前面(只与本身后边的元素对比)
    第n次排序,拿第n个元素与后面所有元素对比,……
    n-1次结束

    2.代码实现

     public static void main(String[] args) {
            // 选择排序
            List<Integer> list = new ArrayList<>();
            for (int i = 0; i < 6; i++) {
                list.add((int) (Math.random() * 10));
            }
            for (int i = 0; i < list.size() - 1; i++) {// 轮回n-1次
                int minIndex = i;
                for (int j = i; j < list.size(); j++) {// 每次轮回需要对比自己后边的元素
                    if (list.get(j) < list.get(minIndex)) {
                        minIndex = j;
                    }
                }
                list.set(i, list.get(minIndex));
                list.set(minIndex, list.get(i));
            }
            System.out.println(list);
        }
    

    3.动图演示
    借用一个效果图方便理解,源地址为:https://www.cnblogs.com/guoyaohua/p/8600214.html

    849589-20171015224719590-1433219824.gif

    相关文章

      网友评论

          本文标题:初学选择排序

          本文链接:https://www.haomeiwen.com/subject/pjdnmctx.html