Bubblesort随机数组Java

我对Java很陌生,一直在研究排序算法。我有以下代码适用于set数组。我只是想知道我需要做些什么才能使它对随机长度和整数数组进行排序。我想答案很明显,任何帮助都值得赞赏!

   public static void main(String[] args) {
   int number[]={8,5,3,2,9};

   int temp;
   boolean fixed=false;
   while(fixed==false){

       fixed=true;

   for(int i=0; i<number.length-1 ; i++){

       if(number[i] > number[i+1]){
       temp = number[i+1];
       number[i+1]=number[i];

       number[i]=temp;
       fixed=false;

       }

    }
   }
   for(int i=0; i<number.length; i++)
       System.out.println(number[i]);

    }

}
xx328397830 回答:Bubblesort随机数组Java

我的意思是,无论数组的长度如何,您的算法都可以工作。关于如何生成此类数组,您可以执行以下操作:

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

大家都在问