我的意思是,无论数组的长度如何,您的算法都可以工作。关于如何生成此类数组,您可以执行以下操作:
int n = Math.random()*10000 + 1; //so its never 0.
int number[] = new int[n];
for(int i=0;i<n;i++) number[i]=Math.random()*10000;
其他所有内容都保持不变:)。
编辑:您评论了一个问题,您宁愿通过键盘输入来生成数组。您可以使用扫描仪来做到这一点。
Scanner scanIn = new Scanner(System.in);
do{
int n = scanIn.nextInt();
} while (n<1);
int number[] = new int[n];
for(int i=0;i<n;i++) number[i] = scanIn.nextInt();
scanIn.close();
,
您正在寻找的可能是一种将气泡提取到的方法。请注意,此方法会更改输入数组,并且不会返回新数组。
private static void bubblesort(int[] array) {
int temp;
boolean fixed = false;
while (!fixed) {
fixed = true;
for (int i = 0; i < array.length - 1; i++) {
if (array[i] > array[i + 1]) {
temp = array[i + 1];
array[i + 1] = array[i];
array[i] = temp;
fixed = false;
}
}
}
}
然后您可以使用其他方法来调用它。
固定大小数组:
// fixed size array
int number[] = {8,5,3,2,9};
bubblesort(number);
System.out.println(Arrays.toString(number));
从System.in
中读取数字。
// read from sys.in like "2 6 4"
Scanner s = new Scanner(System.in);
String line = s.nextLine();
int[] parsedInts = Arrays.stream(line.split("\\s+")).mapToInt(Integer::parseInt).toArray();
bubblesort(parsedInts);
System.out.println(Arrays.toString(parsedInts));
,
您可以在Java中使用Scanner类,并且需要导入java.util.Scanner类
Scanner sc = new Scanner(System.in);
System.out.println("Enter the array length :");
int n = sc.nextInt();
int number[] = new int[n];
System.out.println("Enter the numbers :");
for(int i = 0; i < number.length; i++) {
number[i] = sc.nextInt();
}
本文链接:https://www.f2er.com/3159148.html