美文网首页
选择排序及其优化

选择排序及其优化

作者: xiaoliman | 来源:发表于2017-08-09 21:30 被阅读0次

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

    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);
            }
        }
    }
    
    

    相关文章

      网友评论

          本文标题:选择排序及其优化

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