用Java本关任务:使用直接选择排序(按升序)对给定的数组排序,并输出每次排序结果以及排序完成后的数组。
时间: 2024-10-29 09:25:29 浏览: 22
数组重排序(如何将所有奇数都放在所有偶数前面)的深入分析
直接选择排序是一种简单直观的排序算法,它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。以下是使用Java实现直接选择排序并打印过程的步骤:
```java
public class SelectionSort {
public static void main(String[] args) {
int[] arr = {5, 8, 1, 9, 3}; // 示例数组
System.out.println("原始数组: ");
printArray(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;
System.out.println("第 " + (i+1) + " 轮排序结果: ");
printArray(arr);
}
System.out.println("\n排序完成后的数组: ");
printArray(arr);
}
// 打印数组函数
private static void printArray(int[] array) {
for (int num : array) {
System.out.print(num + " ");
}
System.out.println();
}
}
```
在这个程序中,我们首先初始化一个数组,然后在每一轮迭代中找出剩余部分中的最小元素,并将其与当前位置交换。每轮结束后都会输出新的数组状态。最后,整个数组就会按照升序排列。
阅读全文