Java--选择排序

选择排序

1.思路概述:
选择排序是一种很直观的排序算法,我们不妨以升序排列的要求排序,我们先要找出数组中最小的数字,就是将第一个元素假设为最小的数字开始向后遍历,如果后边的数字比第一个数字小,两者互换位置,一直到没有数字再比第一个数字要小,再将第二个数字作为最小数字,再继续寻找比第二个元素小的数字,小的互换位置,大的就不管啦,以此类推一直到数组结束,就以升序的顺序排列好啦。
是不是有点绕!来来来,画图画图!!!
在这里插入图片描述
就酱紫啦。。。

2.上代码上代码

public static void choiceSort(double[] array){       
    for(int i =0;i<array.length-1;i++){//遍历存放最小的元素           
        double currentMin=array[i];   //定义一个double型变量存放一个当前最小的数        
        int currentMinIndex=i;  //定义int型变量存放一个当前最小数的角标         
        for(int j=1;j<array.length;j++){ //遍历数组查找比当前最小数小的数              
            if(array[j]<array[i]){   //如果比当前最小的数小就互换位置             
                 currentMin=array[j];                
                 currentMinIndex=j;               
            }
       /*此处代码看不懂*/
        }       
    }    
 }

我有看到这样一段代码,在上边代码的基础上第一个for循环中添加了一段如下代码。愣是没搞明白为什么要这样搞,有懂的小可爱能在线指导小吴同学吗?

if(currentMinIndex!=i){
   array[currentMinIndex]=array[i];
   array[i]=currentMin;
}

总结:脑子不好使。明天一定把吃玉米的钱攒下来买块鱼吃,补补脑。🙁

晚安!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值