Java选择排序法

createh53个月前 (03-05)技术教程55

假设当前存在一个 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 数组的排序,并输出已排序的数组元素。代码如下:

  int[] number = {13,15,24,99,4,1};

  String end = "\n";

  int index;

  for (int i = 1;i < number.length;i++) {

  index = 0; for(int j = 1;j <= number.length-i;j++) {

  if (number[j] > number[index]) {

  index = j; // 查找最大值

  }

  }

  end = number[index] + " " + end; // 定位已排好的数组元素

  int temp = number[number.length-i];

  number[number.length-1] = number[index];

  number[index] = temp;

  System.out.print("【");

  for (int j = 0;j < number.length-i;j++) {

  System.out.print(number[j]+" ");

  } System.out.print("】"+end);

  }

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

  【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

相关文章

java快速排序

快速排序是一种非常高效的排序算法,它的实现,增大了记录和比较和移动的距离,从而减少总的比较此时和移动次数。采用分而治之的思想,将一个大的问题拆成一个小的问题,小的问题拆成更小的问题。public st...

算法篇:Java实现九种排序算法1:插入排序之后直接插入排序

一、插入排序思想:每步将一个待排序的记录,按其顺序码大小插入到前面已经排序的字序列的合适位置,直到全部插入排序完为止。关键问题:在前面已经排好序的序列中找到合适的插入位置。方法:直接插入排序、二分插入...

6.Java中ArrayList进行排序总结

文章目录前言1.基础类型的集合排序:2.实体类的集合排序传统:3.Java8使用流式的排序:结尾前言ArrayList是最常见最频繁我们java编程当中使用的集合类,往往进行集合操作的时候会进行排序操...

深圳尚学堂Java培训:排序方法小结-选择排序

选择排序首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。这种方法因为每一次...

深圳尚学堂Java培训:排序方法小结-冒泡排序

作为一个初学者,排序算法可能是接触到的最早的逻辑实例了,而且这些个逻辑还确实有点伤脑筋,那我就将一些经典的排序算法记下来吧,以后也可以来瞧瞧。一、冒泡排序最直接、最好理解、初学者最容易想到的排序算法!...