(兔C残篇)选择排序的代码实现与图文讲解

1. 排序过程图解

在这里插入图片描述

2.选择排序的原理

从最小索引处开始,依次和后面的元素进行比较,得出的较小元素往前放置,经过排序轮次后,较小的元素在数组的前面。

规律:
元素数量 -1 = 比较的轮数
而每轮比较次数都比上一轮次的比较少一次

3. code
public class ReturnIndex{
 public static void main(String[] args){
  int arr[] ={10,55,33,44,99,22};
  //定义外层循环,控制排序的总轮数,减1 是针对 元素之内,和长度无关
  for(int i =0; i < arr.length-1; i++){

  //定义内层循环,控制每轮比较中的元素
  
  //j的起始值直接设置成1即可
  //因为剔除自己和自己比较的次数,直接比较下一个元素
   for(int j =1 +i; j< arr.length; j++){
	//j+1 +i 在加i 是针对遍历轮数的循环变化
	//也就是下一轮中,最小元素已经在前面了,在比较时,从后面的开始去比
    // 此时的长度无需进行减一,可以理解成是针对长度之内的元素,
    // 因为此时 j从1开始一直到长度范围内的元素,如果是<= 长度则需要减1

	   //增加判断条件
	    //当前比较轮数(外层循环)的 下标指向元素,
	    //是否大于 内层循环控制的元素遍历
       if(arr[i] > arr[j]){
         int temp = arr[i];
         arr[i] = arr[j];
         arr[j] = temp;
       }
   }
  }
  System.out.println("选择排序后的数组元素顺序为:"+Arrays.toString(arr));
 }
}

.

4. 总结

与冒泡排序不同的是
冒泡排序是在控制轮次时,增加内层循环从而进行元素的排序和交换。
而选择排序,
是利用外层循环控制指针指向元素,在增加内层循环去遍历指向后面的元素,与自己当前指针的元素进行比较和排序。

而两者相同的规律是:
自己的元素数量 - 1 都会等于 需比较的轮数
而每轮比较比较次数,都比上一次的比较 少一次。

单独掌握冒泡排序和选择排序,感觉玩起来并不快乐,而两者同时掌握和进行比较,乐趣无穷,哈哈哈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

兔C

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值