我有一个包含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个排序。
然而,对于大量测试来说,这将是非常低效的,所以有没有办法让我只实例化一个数组,然后对它进行多次排序?
基本上,我想对数组进行排序,但保留原始未排序的数组,并在每次排序时重复使用它。