我正在编写一个程序来比较不同的排序方法。我随机生成100,000个整数并将这些数据存储到数组中。我想将相同的数组应用于不同的排序方法,以便进行比较。 (我认为每个方法的创建类可以解决我的问题。但我不想创建太多的类)。所以我决定在这个类下创建一个名为Sorts和一堆排序函数的类。我想将我的排序数组重置为未排序,以便将相同的数组应用于不同的排序方法。谁能告诉我怎么样?
生成数据:
int size = Integer.parseInt(br.readLine());
int [] data = new int[size];
for (int i = 0; i< size; i++){
data[i] = (int)(Math.random()*(10*size));
System.out.print(data[i]+" ");
}
创建对象:
Sorts sort = new Sorts(size, data);
调用:
switch(index){
case "1" :
System.out.print("\nYou select bubble sort\n");
sort.bubbleSort();
break;
case "2" :
System.out.print("You select quick sort\n");
sort.quickSort();
break;
我的课程:
class Sorts{
private int size;
private int data[];
Sorts(int size, int [] data){
this.size = size;
this.data = data;
}
protected void bubbleSort(){
int temp = 0;
for (int i = 0; i< (data.length-1); i++){
for (int j = 0; j<(data.length-1);j++){
if(data[j]>data[j+1]){
temp = data[j];
data[j] = data[j+1];
data[j+1]= temp;
}
}
}
printResult();
}
protected void quickSort(){
}
protected void resetData(){
}
}
答案 0 :(得分:0)
我认为对于用例OP似乎有,数组只需要重新洗牌,这种方法重新洗牌虽然不能保证它会将其重置为原始数组
private void reset(final int arr[]) {
Random rand = new Random();
for (int i = 0; i < arr.length; i++) {
int nextInt = rand.nextInt(arr.length);
int temp = arr[i];
arr[i] = arr[nextInt];
arr[nextInt] = temp;
}
}