我正在努力使它生成一个随机数组,但只使用不同的排序实现一个相同的数组(以随机顺序)。我有:
public static void main(String[] args)
{
int[] array = new int[10];
for(int i = 0; i < array.length; i++) {
array[i] = (int)(Math.random()*100);}
System.out.println("\nBefore Bubble Sort: ");
for (int element : array)
System.out.print(element + " ");
bubbleSort(array);
System.out.println("After Bubble Sort: ");
for (int element : array)
System.out.print(element + " ");
System.out.println("\n");
System.out.println("\nBefore Insertion Sort: ");
for (int element : array)
System.out.print(element + " ");
insertionSort(array);
System.out.println("After Insertion Sort: ");
for (int element : array)
System.out.print(element + " ");
System.out.println("\n");
}
使用相应的排序代码(如有必要,我会发布)。它的输出是:
Array Before Bubble Sort:
2 64 27 1 81 60 72 6 9 82
Array After Bubble Sort:
1 2 6 9 27 60 64 72 81 82
Array Before Insertion Sort:
1 2 6 9 27 60 64 72 81 82
Array After Insertion Sort:
1 2 6 9 27 60 64 72 81 82
我希望这个数组2 64 27 1 81 60 72 6 9 82
也在插入前一行。冒泡排序的排序数组只是放在插入排序中,因此它没有做任何事情。我想我需要为随机数组创建一个方法并调用每种方法?我该怎么办?或者我欣赏的任何其他解决方案。如果需要,我会编辑更多信息。
答案 0 :(得分:2)
在每次排序之前克隆或复制数组,并将克隆传递给排序例程。您可以使用int?.Value
或array.clone()
制作副本。
Arrays.copyOf(array, array.length)
答案 1 :(得分:0)
您应该对初始数组进行复制,以便维护与原始数据相同的数据。