Sorting 多重数组上排序方法的运行时间

Sorting 多重数组上排序方法的运行时间,sorting,performance,quicksort,mergesort,insertion-sort,Sorting,Performance,Quicksort,Mergesort,Insertion Sort,我有各种排序方法,都是对同一个100000随机数数组进行排序 我使用以下方法来查找每个 long insertionStart = System.currentTimeMillis(); arr.Clone(iniArr); arr.insertionSort(); long insertionFinal = System.currentTimeMillis() - insertionStart; 下面是随机数数组 int maxSize = 100000; // arra

我有各种排序方法,都是对同一个100000随机数数组进行排序

我使用以下方法来查找每个

long insertionStart = System.currentTimeMillis();
   arr.Clone(iniArr);
   arr.insertionSort();
   long insertionFinal = System.currentTimeMillis() - insertionStart;
下面是随机数数组

int maxSize = 100000;  // array size
   Sortarr arr, iniArr;         // reference to array
   arr = new Sortarr(maxSize);  // create the array
   iniArr = new Sortarr(maxSize);

   // insert random numbers
   Random generator = new Random();
   for (int i = 0; i < maxSize; i++) iniArr.insert(generator.nextInt());
int maxSize=100000;//数组大小
索塔尔,伊尼亚尔;//对数组的引用
arr=新的Sortarr(最大尺寸);//创建数组
iniArr=新Sortarr(最大尺寸);
//插入随机数
随机生成器=新随机();
对于(inti=0;i
我如何修改它,使它们中的每一个都能对100个数组(而不是一个)进行排序,并计算每个数组的时间?如Run1-23ms;运行2-25ms。。。跑步100-22毫秒

编辑: 我还有最后一件事要做。 因此,每次迭代都以几种方式对数组进行排序,比如插入、合并和快速排序。 比如说插入=300ms,合并=200ms,快速=100ms。我需要在每次迭代中找出排序最快的方法

我知道这是一个简单的min/max类型的东西,在较低的编程类中要做上千次。
将每个值放入数组并使用array.min调用是否更容易?(不管它实际上是什么,都是java语法的新手。)

您可能会做如下操作:

for (int try = 0; try < 100; try++) {
   iniArr = new Sortarr(maxSize);

   // insert random numbers
   Random generator = new Random();
   for (int i = 0; i < maxSize; i++) iniArr.insert(generator.nextInt());

   long insertionStart = System.currentTimeMillis();
   arr.Clone(iniArr);
   arr.insertionSort();
   long insertionFinal = System.currentTimeMillis() - insertionStart;

   // print out the time, and/or add up the total
}
for(int try=0;try<100;try++){
iniArr=新Sortarr(最大尺寸);
//插入随机数
随机生成器=新随机();
对于(inti=0;i

您仍然需要事先进行初始化。我想我不知道为什么数组在排序之前被克隆。能否直接对该数组进行排序?

目前,您似乎正在创建数组,然后使用不同的函数重复排序

你只需要把所有这些放在一个循环中

int maxRuns = 100;

int maxSize = 100000;  // array size

for (int run=0; run<maxRuns; run++) {   
    Sortarr arr, iniArr;         // reference to array
    arr = new Sortarr(maxSize);  // create the array
    iniArr = new Sortarr(maxSize);

    // insert random numbers
    Random generator = new Random();
    for (int i = 0; i < maxSize; i++) iniArr.insert(generator.nextInt());

    long insertionStart = System.currentTimeMillis();
    arr.Clone(iniArr);
    arr.insertionSort();
    long insertionFinal = System.currentTimeMillis() - insertionStart;
    /* <more code goes here> */
}
int-maxrunts=100;
int maxSize=100000;//数组大小

for(int run=0;run)将代码放入循环中?这是一般的想法,但是如果我知道如何完整地实现它,我就不会在这里发布了!它是克隆的,以便所有其他方法都对同一数组进行排序。我有多个方法,而不仅仅是插入、合并、堆、shell等。。