Java 选择排序算法

选择排序的算法

  • 整个数列分成两部分:前面是有序数列,后面是无序数列
  • 初始状态下,整个数列都是无序的,有序数列是空
  • 一共n个数,需要n-1趟循环(一趟都不能少)
  • 每比较完一趟,有序数列数量+1,无序数列数量-1
  • 每趟先假设无序数列的第1个元素(整个数列的第i个元素)是最小的,让当前的最小数,从第i+1个元素开始比较,一直比较到最后一个元素。如果发现更小的数,就假设当前数是最小数。
  • 一趟比较完后,将发现最小数和无序数列的第一个数交换(如果最小数不是无序数列的第一个数)

在这里插入图片描述

【示例一】选择排序
public class TestSelectSort {
   public static void main(String[] args) {
        //给定无序的数组
        int [] scoreArr = {75,87,56,45,89,100,76,34,89,97};
        //输出无序的数组
        System.out.println(Arrays.toString(scoreArr));
        //选择排序
        selectSort(scoreArr);
        //输出有序的数组
        System.out.println(Arrays.toString(scoreArr));
    }
    public static void selectSort(int[] scoreArr) {
        //大循环:n个元素排序,则需要n-1趟循环
        for(int i=0;i<scoreArr.length-1;i++){
            //第i趟先假设第i个最小
            int minIndex = i;
			//从第i+1个元素开始,依次使用最小元素和每元素比较,一直比较到最后
            for (int j = i+1; j <scoreArr.length ; j++) {
                if(scoreArr[minIndex] > scoreArr[j]){
                    minIndex = j;
                }
            }
           //一趟比较完后,或者最小值的索引,如果不是第i个,就交换
            if(minIndex !=i){
                int temp;
                temp = scoreArr[i];
                scoreArr[i] = scoreArr[minIndex];
                scoreArr[minIndex] = temp;
            }
        }
    }
}

这篇文章到这里就结束了,感谢大佬们驻足观看,大佬们点个关注、点个赞呗~

谢谢大佬~
在这里插入图片描述


作者:香芋味的猫丶

康康你手机号在过多少网站注册过!

>>相关阅读
《Java冒泡排序算法》

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

香芋味的猫

你的鼓励的我继续创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值