Java选择排序法

9个月前 (04-27)

假设当前存在一个 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