【发布时间】:2016-02-03 23:43:41
【问题描述】:
import java.util.Random;
public class Tester {
public static void main(String[] args) {
selectionSort(args);
}
private static void printArray(int[] anArray) {
for (int i = 0; i < anArray.length; i++) {
if (i > 0) {
System.out.print(", ");
}
System.out.print(anArray[i]);
}
}
public static void selectionSort(String[] args) {
int i, x = 0;
int l = 10;
Random r = new Random(271);
int array[] = new int[l];
for (i = 0; i < l; i++) {
array[i] = r.nextInt();
}
while (i < l) {
for (int j = 1; j <= i; j++) {
if (array[j] < array[x])
x = j;
}
i++;
}
printArray(array);
}
}
一切都很好,我只是无法正确打印。当我打印时,我得到“-1061221096、-349834974、-1279215928、1452441141、-367008517、638966200、-464597014、1551135748、-446923224、542496703”,这是不正确的。我相信每个数字都应该在 271 以下。
【问题讨论】:
-
您的意见是什么?你为什么将
args传递给selectionSort方法? -
没有输入,我应该只得到输出。我想将 (int[] arr) 传递给选择排序,但是我遇到了错误。
-
Random有一个内部种子和算法,要求您对一组值使用单个实例,使用多个实例可以生成重复值甚至相同顺序的值
标签: java selection-sort