为每种排序使用相同的随机数组

时间:2017-10-18 14:39:42

标签: java sorting random

我正在努力使它生成一个随机数组,但只使用不同的排序实现一个相同的数组(以随机顺序)。我有:

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也在插入前一行。冒泡排序的排序数组只是放在插入排序中,因此它没有做任何事情。我想我需要为随机数组创建一个方法并调用每种方法?我该怎么办?或者我欣赏的任何其他解决方案。如果需要,我会编辑更多信息。

2 个答案:

答案 0 :(得分:2)

在每次排序之前克隆或复制数组,并将克隆传递给排序例程。您可以使用int?.Valuearray.clone()制作副本。

Arrays.copyOf(array, array.length)

答案 1 :(得分:0)

您应该对初始数组进行复制,以便维护与原始数据相同的数据。