JAVA 选择排序

Java 数组元素进行选择排序

选择排序原理:从0索引处开始,依次和后面的元素进行比较,小的元素往前放,经过一轮比较厚,最小的元素出现在最小的索引处

思路:
如图,第一轮从0索引开始,依次向后进行比较
第一轮
第二轮从索引1开始
第二轮
第三轮
第四轮
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结规律:数组中有8个元素,经过七轮比较

第一轮比较了七次;第二轮比较了六次;第三轮比较了五次;第四轮比较了四次;第五轮比较了三次;第六轮比较了两次;第七轮比较了一次

依次分析每轮比较

第一次比较

int index = 0;
for (int i = 1; i < arr.length; i++) {
                if (arr[index]>arr[i]){
                    int tem = arr[i];
                    arr[i] = arr[index];
                    arr[index] = tem;
                }
}

第二次比较

int index = 0;
for (int i = 1; i < arr.length; i++) {
                if (arr[index]>arr[i]){
                    int tem = arr[i];
                    arr[i] = arr[index];
                    arr[index] = tem;
                }
}
int index = 1;
for (int i = 1+index; i < arr.length; i++) {
                if (arr[index]>arr[i]){
                    int tem = arr[i];
                    arr[i] = arr[index];
                    arr[index] = tem;
                }
}

依次类推,每次改变 index的值,加一即可,但如此代码都重复了,进行改进

选择排序完整代码从小到大排序

public static void main(String[] args) {
    //选择排序原理: 从索引0开始,每一轮依次和后面的数进行比较
        int[] arr = {35,17,38,58,95,63,2,85};
        for (int index = 0; index < arr.length-1; index++) {
            for (int i = 1+index; i < arr.length; i++) {
                if (arr[index]>arr[i]){
                    int tem = arr[i];
                    arr[i] = arr[index];
                    arr[index] = tem;
                }
            }
        }
        System.out.println(Arrays.toString(arr));
    }

此时排序为小到大,若想要打印出从大到小修改if条件里的大于符号,改为小于号即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值