如何“取消排序”一组随机生成的值?

时间:2017-11-09 03:10:53

标签: java arrays sorting

我有一个包含10 000个随机值的arraylist,范围从1-1000。 我想测试各种类型(气泡,插入,选择等)的速度,为了做到这一点,我需要使用相同的数组。

我创建了数组:

    int num;
    int[] data = new  int [10000]; 
    for (int i = 0; i < 10000; i++) {
    num=(int)(Math.random()*1000+1);
    data [i] = num;

我使用冒泡排序对其进行排序:

{
            int tempVarBS;
    for (int i = 0; i < data.length-1; i++)
    {
       for(int j = 0; j < data.length-i-1; j++)
       {
                if(data[j] > data[j + 1])
                {
                       tempVarBS = data [j + 1];
                       data [j + 1]= data [j];
                       data [j] = tempVarBS;
                }
       }
    }
    for (int i = 0; i < data.length; i++)
    {
         System.out.println(data[i]);   
    }
}

现在,数组已经排序。当我去测试插入排序时,数组已经被排序了。对于少量的测试,我想我可以简单地将数组复制x次,用于我要测试的x个排序。

然而,对于大量测试来说,这将是非常低效的,所以有没有办法让我只实例化一个数组,然后对它进行多次排序?

基本上,我想对数组进行排序,但保留原始未排序的数组,并在每次排序时重复使用它。

0 个答案:

没有答案