【发布时间】:2020-09-01 16:25:37
【问题描述】:
编写一个 void 方法 selectionSortDescendTrace() ,它接受一个整数数组,并将数组按降序排序。该方法应使用嵌套循环,并在外循环每次迭代后输出数组,从而输出数组 N-1 次(其中 N 是大小)。完成 main() 以读取最多 10 个正整数(以 -1 结尾)的列表,然后调用 selectionSortDescendTrace() 方法。
如果输入是:
20 10 30 40 -1
那么输出是:
40 10 30 20
40 30 10 20
40 30 20 10
我的代码:
import java.util.Scanner;
public class MyProgram {
public static void selectionSortDescendTrace( int [] numbers, int numElements)
{
for (int i = 0; i < numbers.length - 1; i++) {
if(numbers[i] > 0) {
int maxElementIndex = i;
for (int j = i + 1; j < numbers.length; j++) {
if (numbers[maxElementIndex] < numbers[j]) {
maxElementIndex = j;
}
}
int temp = numbers[i];
numbers[i] = numbers[maxElementIndex];
numbers[maxElementIndex] = temp;
for (int element: numbers) {
if(element > 0)
System.out.print(element + " ");
}
System.out.println("");
}
}
}
public static void main(String[] args){
Scanner scnr = new Scanner(System.in);
int input, i = 0;
int numElements = 0;
int [] numbers = new int[10];
do{
input = scnr.nextInt();
if(input != -1){
numbers[i] = input;
i++;
numElements++;
}
}while(input != -1);
selectionSortDescendTrace(numbers, numElements);
}
}
我的输出是:
40 10 30 20
40 30 10 20
40 30 20 10
40 30 20 10
我不确定为什么它重复最后一行两次...请帮助。
【问题讨论】:
标签: java selection selection-sort