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