【问题标题】:How to prompt user to input a number to get size of array. Then sort array using bubble sort method如何提示用户输入数字以获取数组的大小。然后使用冒泡排序方法对数组进行排序
【发布时间】:2016-03-25 18:04:07
【问题描述】:

很久没有练习Java了,如果有任何帮助,将不胜感激。

对于类项目,我们必须创建一个程序,提示用户输入一个数字并创建一个数组的大小。输入后,我们将显示排序前的数字列表和使用冒泡排序算法排序后的列表。

这是我目前所拥有的。我知道我遗漏了一大段代码,以便我可以在排序前后打印列表,但我迷路了。

import java.util.Scanner;
public class Part1BubbleSort  
{
public static void main(String[] args) 
{
    //int temp = 0;

    Scanner scan = new Scanner(System.in);
    int z = scan.nextInt();
    int [] array = new int[z];
    System.out.print("Please enter a number to create array."+"\n");
    z = scan.nextInt();

    //Bubble Sort
    for(int i = array.length-1; i>=0; i--)
    {
        for(int j=0; j<i; j++)
        {
            if(array[j] > array[j+1])
            {
                int temp = array[j];
                array[j] = array[j+1];
                array[j+1] = temp;
            }
        }
    }
}

【问题讨论】:

  • 您只输入两个数字,第一个是大小,可以,但第二个 z 从未使用过。如果您还希望用户输入数组元素,那么您应该将array[i]=scan.nextInt(); 放入 i:0->z 的 for 循环中。要打印一个数组,您可以使用Arrays.toString(array);
  • 太棒了!感谢您指出这一点……尤其是两个输入。

标签: java arrays sorting bubble-sort


【解决方案1】:

你可以这样做:

import java.util.Arrays;
import java.util.Scanner;
import java.util.Random;
public class BubbleTest {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.println("Please enter a number to create array."+"\n");
        int z = scan.nextInt();
        int [] array = new int[z];
        // Randomly generating array elements

        for(int i =0; i<z; i++){
            array[i]=new Random().nextInt();
        }
      //  z = scan.nextInt();
        System.out.println("Unsorted:");
        System.out.println(Arrays.toString(array));


        //Bubble Sort
        for(int i = array.length-1; i>=0; i--)
        {
            for(int j=0; j<i; j++)
            {
                if(array[j] > array[j+1])
                {
                    int temp = array[j];
                    array[j] = array[j+1];
                    array[j+1] = temp;
                }
            }
        }

        System.out.println("sorted:");
        System.out.println(Arrays.toString(array));
    }

}

【讨论】:

  • 巨大的帮助。谢谢!我将尝试让代码生成随机元素,但这无疑为我指明了正确的方向。
  • 为了生成随机数,你可以使用 Random 类。例如,随机 r=new Random();数组[i]=r.nextInt();
  • 太好了,谢谢!我花了一段时间才让它工作。在我看到您的更新之前,我一直在将数组大小 (z) 设置为随机扫描范围的错误。例如:array[i]= new Random().nextInt(z);愚蠢的错误。我将其固定为 1000 的最大值。再次感谢!
猜你喜欢
  • 2014-09-17
  • 2018-09-22
  • 2020-07-17
  • 2019-04-14
  • 2014-05-17
  • 1970-01-01
  • 2020-05-17
  • 2021-06-14
  • 2016-07-25
相关资源
最近更新 更多