Java工程师的第四天——选择排序

选择排序的思想:

给定数组a[5] = {2,1,3,5,4}

每一趟循环,都会把最小值的下标,用临时变量保存起来

然后依此把最小值和第一个数,第二个数交换位置......即可实现从小到大排序

1,2,3,5,4

1,2,3,5,4

1,2,3,5,4

1,2,3,4,5

代码:

for(int i =0;i<5-1;i++){ //完成4趟排序后,前面4个位置的值均是从小到大,无需排第五个数

    min = a[i];//第一趟排序完成后,第一个数会是最小值;

                    //又会从新的起点第2个数到最后一个数找最小值

    ind = i;//这是最小值的下标;       注意:要让min的下标和ind保持一致

    for(int j = i+1;j<5;j++){

        if(min > a[j]){

            min = a[j];//最小值保存下来,是为了找到更小的值,最后遍历结束才是真的最小值

            ind = j;//将最小值的下标保存下来

        }

        //第一遍循环结束后,交换第一个数和最小数

        a[ind] = a[i];

        a[i] = min;

       

    }

}

转载于:https://my.oschina.net/u/3843264/blog/1801797

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值