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);