在Java编程语言中,排序是数据处理中非常基础且重要的操作。这个例子中,我们讨论的是如何使用选择排序算法对10个数进行排序。选择排序是一种简单直观的排序算法,它的工作原理是每一次从未排序的序列中找到最小(或最大)的元素,存放到排序序列的起始位置,然后,再从剩余未排序的元素中继续寻找最小(或最大)的元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
在提供的代码中,首先创建了一个包含11个元素的数组`arr`,其中前10个元素通过`Random`类生成100以内的随机整数。使用`nextInt(100)+1`确保生成的数字至少为1,避免生成0。接下来,使用`Arrays.sort(arr)`对数组进行排序,这是Java内置的快速排序方法,其效率比选择排序更高。
然后,程序提示用户输入一个整数,将这个整数存储到数组的第11个位置,即`arr[10]`。由于用户输入的数字可能未排序,我们需要再次调用`Arrays.sort(arr)`对包含新元素的数组进行排序。
两次排序后,分别输出排序前和排序后的数组元素,以展示排序的效果。使用`for`循环遍历数组,通过`System.out.print`打印每个元素,并通过`\t`进行制表符分隔,使输出更易于阅读。
需要注意的是,虽然这里使用了内置的`Arrays.sort()`方法,但根据题目描述,原本应实现选择排序的逻辑。选择排序的Java实现如下:
```java
public static void selectionSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < arr.length; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
// 将找到的最小元素与当前未排序的第一个元素交换
int temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
```
在这个自定义的选择排序方法中,外层循环控制未排序部分的起始位置,内层循环用于找到未排序部分中的最小值,然后将最小值与未排序部分的第一个元素交换。这个过程不断重复,直到整个数组排序完成。
总结来说,这段Java代码主要展示了如何使用内置排序方法对数组进行排序,以及如何实现选择排序的基本思想。对于初学者而言,理解这两种排序方法的工作原理以及如何在实际代码中应用是非常有益的。同时,这也强调了Java内置库的强大功能,如`Arrays`类提供的各种实用方法,能够简化编程任务,提高开发效率。