选择排序及其优化

选择排序:外循环循环一轮,就是拿这个固定位置的数与后面比较,确保当前这个位置的数是这个位置之后的所有数据的最小值.不明白意思的话看代码:(注释掉的代码)

package com.qf.demo4;

public class Test2 {

    public static void main(String[] args) {
        int[] a = {5,18,9,2,6,3};
//      for (int i = 0; i < a.length-1; i++) {
//          for (int j = i+1; j <= a.length-1; j++) {
//              if(a[i]>a[j]){
//                  int temp = a[i];
//                  a[i] = a[j];
//                  a[j] = temp;
//              }
//          }
//      }
        
        
        // 选择排序的优化: 提高效率
        // 6个数   至多 交换5次    
        for (int i = 0; i < a.length-1; i++) {
            int min = i;
            for (int j = i+1; j <= a.length-1; j++) {
                if(a[min]>a[j]){
                    min = j;// 把  最小的数据的下标给 min 
                                // min 一直是最小的数据的下标
                }
            }
            //如果当前最小值不是a[i] , 即下标不同时 ,交换
            if(i!=min){
                int temp = a[i];
                a[i] = a[min];
                a[min] = temp;
            }
            
        }
        
        for (int i : a) {
            System.out.println(i);
        }
    }
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 基本思想 这是思路最简单的排序算法。 找到数组中最小的那个元素; 将它和数组的第一个元素交换位置(如果第一个元素就...
    TinyDolphin阅读 4,179评论 0 2
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,242评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,362评论 25 709
  • (茨)“吾名为茨木童子,为了满足自己的愿望,正在寻找我的一个朋友。” (茨)“他就是我追求的极致,位于妖族顶点的男...
    袖间长寄风与月阅读 1,093评论 0 0
  • 生命就像一把火花,在我们需要它的时候,它熄灭了;在我们不需要的时候,而它竟然熊熊燃烧了。唉[晕][晕][晕][晕]...
    孙佳瑶阅读 212评论 0 1