Java数组排序:Java选择排序法

假设当前存在一个 int 类型的数组 number,该数组中的元素依次是 13、15、 24、99、4 和 1。如果使用冒泡排序进行两两相邻比较,第一趟排序后的结果如下:

13、15、24、4、1、99


第二趟排序后的结果如下:

13、15、4、1、24、99


第三趟排序后的结果如下:

13、4、1、15、24、99


第四趟排序后的结果如下:

4、1、13、15、24、99


第五趟排序后的结果如下:

1、4、13、15、24、99


使用选择排序法也可以对上述数组中的元素进行排序,但是它与冒泡排序不同。选择排序是指每一趟从待排序的数据元素中选出最大(或最小)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。例如,使用选择排序法重新对 number 数组中的元素进行排序,那么第一趟排序后的结果如下:

13、15、24、1、4、99


第二趟排序后的结果如下:

13、15、4、1、24、99


第三趟排序后的结果如下:

13、1、4、15、24、99


第四趟排序后的结果如下:

4、1、13、15、24、99


第五趟排序后的结果如下:

1、4、13、15、24、99

例 1

利用选择排序方法通过编程的方式实现对 number 数组的排序,并输出已排序的数组元素。代码如下:

 
  1. int[] number={13,15,24,99,4,1};
  2. String end="\n";
  3. int index;
  4. for(int i=1;i<number.length;i++)
  5. {
  6. index=0;
  7. for(int j=1;j<=number.length-i;j++)
  8. {
  9. if(number[j]>number[index])
  10. {
  11. index=j; //查找最大值
  12. }
  13. }
  14. end=number[index]+" "+end; //定位已排好的数组元素
  15. int temp=number[number.length-i];
  16. number[number.length-1]=number[index];
  17. number[index]=temp;
  18. System.out.print("【");
  19. for(int j=0;j<number.length-i;j++)
  20. {
  21. System.out.print(number[j]+" ");
  22. }
  23. System.out.print("】"+end);
  24. }


执行上述代码,查看每一趟排序后的结果,运行结果如下所示。

【13 15 24 1 4 】99
【13 15 4 1 】24 99
【13 1 4 】15 24 99
【4 1 】13 15 24 99
【1 】4 13 15 24 99 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值