Java 仅生成正随机数并对其进行排序
我正在尝试生成正数并按升序排序,而不使用Java 仅生成正随机数并对其进行排序,java,arrays,Java,Arrays,我正在尝试生成正数并按升序排序,而不使用数组。sort 这段代码要求输入多少随机数,然后对它们进行排序并打印出来。我的代码要求输入多少,并打印出比给定值少一个 例如,当我要2个时,它只打印出一个。找不到错误或错误 代码 import java.util.*; public class Sort { public static void main(String args[]) { Scanner in = new Scanner(System.in);
数组。sort
这段代码要求输入多少随机数,然后对它们进行排序并打印出来。我的代码要求输入多少,并打印出比给定值少一个
例如,当我要2个时,它只打印出一个。找不到错误或错误
代码
import java.util.*;
public class Sort {
public static void main(String args[]) {
Scanner in = new Scanner(System.in);
System.out.print("How many numbers do you want? ");
int howMany = in.nextInt();
int[] myArray = getRandomArray(howMany);
}
/* public static int bsearch(int[] arr, int key)
{
}*/
public static int[] getRandomArray(int howMany) {
int[] returnMe = new int[howMany]; // Assume size >= 0
Random rand = new Random();
for (int i = 0; i < howMany; i++) {
returnMe[i] = rand.nextInt(Integer.MAX_VALUE) + 1;
System.out.print(returnMe[i] + " ");
for (i = 1; i <= returnMe.length; i++) {
for (int j = i + 1; j < returnMe.length; j++) {
int tmp = 0;
if (returnMe[i] > returnMe[j]) {
tmp = returnMe[i];
returnMe[i] = returnMe[j];
returnMe[j] = tmp;
}
}
}
}
return returnMe;
}
}
import java.util.*;
公共类排序{
公共静态void main(字符串参数[]){
扫描仪输入=新扫描仪(系统输入);
System.out.print(“您想要多少个数字?”);
int howMany=in.nextInt();
int[]myArray=getRandomArray(多少);
}
/*公共静态int-b搜索(int[]arr,int-key)
{
}*/
公共静态int[]getRandomArray(int多少){
int[]returnMe=new int[howMany];//假设大小>=0
Random rand=新的Random();
for(int i=0;i<多少;i++){
returnMe[i]=rand.nextInt(Integer.MAX_值)+1;
System.out.print(returnMe[i]+“”);
for(i=1;i返回我[j]){
tmp=返回我[i];
returnMe[i]=returnMe[j];
returnMe[j]=tmp;
}
}
}
}
还给我;
}
}
因为您正在更改循环中的i
:
for (int i = 0; i < howMany; i++) {//loop 1
...
for (i = 1; i <= returnMe.length; i++) {//loop 2
//--------------------------------^^^
//When you get out from this loop, the i is > then the original i
for(int i=0;i
要避免此问题,请使用另一个变量,例如,您的代码应如下所示:
for (int i = 0; i < howMany; i++) {//loop 1
...
for (int k = 1; k <= returnMe.length; k++) {//loop 2
//-------^------^---------------------^
for(int i=0;i 对于(int k=1;k我尝试了(I=0;I
对于循环二,它仍然做相同的@YCF\u Lno@karthika不要使用这个,而是使用另一个变量,检查我的编辑我已经发布了所有的解决方案好了,但是现在它没有排序,先生@YCD\u Lnow它取决于你的算法,可能我在你的程序中做了很多更改,所以仔细检查它,可能是在我使用的k的i
的地方代码>