我正在重用排序数组,但我想使用新生成的数组

时间:2013-11-19 00:30:21

标签: java arrays sorting

在这段代码中,我一次又一次地重复使用排序数组,这就是为什么第二次输出与第一次相比非常低的原因。有人可以帮忙吗?

import java.util.Random;
import java.util.Scanner;

public class UseSorts {

public static int[] makeArray(int x) {

    int[] a = new int[x];
    for (int i = 0; i < x; i++) {
    Random r = new Random(1234);
    a[i] = r.nextInt();
    }
    return a;
}

public static void InsertionSort(int[] x) {

    long start = System.nanoTime();
    Sorts.InsertionSort(x);
    long finish = System.nanoTime();
    long total = finish - start;
    System.out.println("elapsed time is: " + total);


} 
public static void main(String[] args) {

    Scanner in = new Scanner(System.in);
    System.out.print("Enter the number of elements: ");
    int number = in.nextInt();
    for (int i = 0; i < 10; i++) {

        int[] arr = makeArray(number);
        InsertionSort(arr);

    }

} 

}

Enter the number of elements: 100
elapsed time is: 1930646
elapsed time is: 7926
elapsed time is: 7692
elapsed time is: 7590
elapsed time is: 7555
elapsed time is: 7649
elapsed time is: 7560
elapsed time is: 7592
elapsed time is: 7685
elapsed time is: 12281

1 个答案:

答案 0 :(得分:0)

除第一次运行外,所有其他运行都是一致的。您可能必须考虑Eclipse开销或用于推断第一次运行时间的工具的开销。我不确定究竟是什么原因,但是,我可以告诉你,你没有重新使用内存,所有其他类变量看起来都很好。如果忽略第一次运行,则所有其他运行都非常一致。