如何从main方法使用用户输入的数组大小?

时间:2016-04-10 23:13:49

标签: java sorting

我试图创建一个程序,测量每个排序算法对数组中随机整数进行排序所需的时间。问题出在我的主类中,我要求用户输入数组大小应该是什么。但是,我试图传递这个数字" arraySize"进入另一个班级。

现在,我将数组的大小设置为50。

因此,程序应该通过输入大小为input.next()的数组,然后用随机整数填充数组。然后它对阵列进行排序并测量时间。

这是我的主要内容:

  public static void main(String[] args)
      { 

      // final int was set earlier in the assignment to 50. Therefore
      //the program will only take an answer for a size n of 50.

      System.out.println("Please enter the size of array:");
      Scanner input = new Scanner(System.in); 
      int arraySize =input.nextInt();    

        initValues();
        printValues();
        System.out.println("values is sorted: " + isSorted());
        System.out.println();

        // make call to sorting method here (just remove //)

         /**long startTime = System.nanoTime();
         long total = 0; 
         selectionSort(); 
         long stopTime = System.nanoTime();
         long elapsedTime = stopTime-startTime;
         */

         long startTime = System.nanoTime();
         long total = 0;
         bubbleSort();
         long stopTime = System.nanoTime();
         long elapsedTime = stopTime-startTime;

        printValues();
        System.out.println("values is sorted: " + isSorted());
        System.out.println();
        System.out.println("The time it took to sort was: " +elapsedTime); 
      }
     }

这与我的主要课程相同:

public class Sorts
{
  static  int SIZE =50;            // size of array to be sorted
  static int[] values = new int[SIZE];   // values to be sorted

  static void initValues()
  // Initializes the values array with random integers from 0 to 99.
  {
    Random rand = new Random();
    for (int index = 0; index < SIZE; index++)
      values[index] = Math.abs(rand.nextInt()) % 100;
  }

  static void selectionSort()
  // Sorts the values array using the selection sort algorithm.
  {
    int endIndex = SIZE - 1;
    for (int current = 0; current < endIndex; current++)
      swap(current, minIndex(current, endIndex));
  }

为什么我不能用arraySize替换SIZE?有没有办法可以在我的main方法中将SIZE声明为input.nextInt()?如果我这样做,它仍然用50个随机整数填充数组。

0 个答案:

没有答案