请解决java一道关于选择排序的题,本题要求从键盘读入n个整数,对这些数做选择排序。输出选择排序每一步的结果和最终结果。 输入格式: 输入的第一行是一个正整数n,表示 在第二行中会有n个整数。 输出格式: 输出选择排序每一步的结果和最终结果在这里给出一组输入。例如: 5 3 7 2 9 1 输出样例: 在这里给出相应的输出。例如: step 1: 1 7 2 9 3 step 2: 1 2 7 9 3 step 3: 1 2 3 9 7 step 4: 1 2 3 7 9 sorted array: 1 2 3 7 9
时间: 2024-02-25 20:59:23 浏览: 257
好的,以下是Java实现的示例代码:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int[] a = new int[n];
for (int i = 0; i < n; i++) {
a[i] = scanner.nextInt();
}
for (int i = 0; i < n; i++) {
int minIndex = i;
for (int j = i + 1; j < n; j++) {
if (a[j] < a[minIndex]) {
minIndex = j;
}
}
int temp = a[i];
a[i] = a[minIndex];
a[minIndex] = temp;
System.out.print("step " + (i + 1) + ": ");
for (int k = 0; k < n; k++) {
System.out.print(a[k] + " ");
}
System.out.println();
}
System.out.print("sorted array: ");
for (int i = 0; i < n; i++) {
System.out.print(a[i] + " ");
}
}
}
```
这段代码中,首先读入了待排序的数组。然后使用两个嵌套的循环实现了选择排序的过程,并在每一步输出排序后的结果。最后输出最终排序后的结果。
需要注意的是,Java数组下标从0开始,因此在输出步骤时需要加1。同时,输出格式要与题目要求完全一致。
阅读全文