Java 将冒号排序作为单独的数组返回

Java 将冒号排序作为单独的数组返回,java,arrays,sorting,bubble-sort,arrayobject,Java,Arrays,Sorting,Bubble Sort,Arrayobject,我试图编写一个程序,生成一个由随机数填充的数组,然后对它们进行气泡排序,并将排序后的数组作为一个单独的数组返回,这样您就可以比较这两个数组了 但是,一旦我创建了随机数组,然后尝试创建另一个排序数组,排序数组将“覆盖”随机数组,并且当我尝试打印它时,随机数组将显示为排序数组 我的问题是:我如何修改我的代码,这样我就可以创建一个随机双精度数组,然后生成另一个单独的数组,它是那个随机双精度数组的排序版本 主要内容: 气泡级别: public class Bubble { private double

我试图编写一个程序,生成一个由随机数填充的数组,然后对它们进行气泡排序,并将排序后的数组作为一个单独的数组返回,这样您就可以比较这两个数组了

但是,一旦我创建了随机数组,然后尝试创建另一个排序数组,排序数组将“覆盖”随机数组,并且当我尝试打印它时,随机数组将显示为排序数组

我的问题是:我如何修改我的代码,这样我就可以创建一个随机双精度数组,然后生成另一个单独的数组,它是那个随机双精度数组的排序版本

主要内容:

气泡级别:

public class Bubble {

private double[] list;

public Bubble(double[] list){

    this.list = list;
}

public double[] getArray(){
    return list;
}

public static double[] randPop(double[] template){

    for(int i = 0; i < template.length; i++){
        template[i] = Math.random();
    }

    return template;
}



public static double[] bubbleSort(double[] mess){

    double[] tidy = new double[mess.length];

    for(int i=0; i<mess.length; i++)
    {
        for(int j=i + 1; j<mess.length; j++)
        {
            if(mess[i] > mess[j])
            {
                double temp = mess[i];
                mess[i] = mess[j];
                mess[j] = temp;
            }
        }
        tidy[i] = mess[i];
    }
    return tidy;
}




public static void printOut(double[] list){

    for(int i = 0; i < list.length; i++){
        System.out.println(list[i]);
    }
}

}
公共类气泡{
私人双[]名单;
公共泡沫(双[]列表){
this.list=列表;
}
公共双[]getArray(){
退货清单;
}
公共静态双[]randPop(双[]模板){
对于(int i=0;i对于(int i=0;i只需首先创建数组的副本:

public static double[] bubbleSort(double[] mess){
    // Copy the array    
    double[] tidy = Arrays.copyOf(mess, mess.length);

    // sort
    for(int i=0; i<tidy.length; i++)
    {
        for(int j=i + 1; j<tidy.length; j++)
        {
            if(tidy[i] > tidy[j])
            {
                double temp = tidy[i];
                tidy[i] = tidy[j];
                tidy[j] = temp;
            }
        }
    }
    return tidy;
}
publicstaticdouble[]bubbleSort(double[]mess){
//复制数组
double[]tidy=Arrays.copyOf(mess,mess.length);
//分类

对于
bubbleSort
中的(int i=0;i),您正在对
mess
数组进行排序,然后将其分配给
tidy
。因此将对mess进行排序,而tidy也将引用已排序的数组

您需要将数组整理成
tidy

double[] tidy = Arrays.copyOf(mess, mess.length);

然后进行排序。

克隆阵列,然后对原始阵列或克隆阵列进行排序。您正在对原始阵列进行排序,然后将其复制到新阵列,新阵列将为您提供两个已排序的阵列。您需要先复制阵列,然后对其中一个阵列进行排序。可能的重复错误地假设在传递到
bubbleSort方法。这是错误的。有关Java所做的工作的详细信息,请参阅
double[] tidy = Arrays.copyOf(mess, mess.length);