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

选择排序及其优化

作者: 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