此代码两次添加相同的“myRndmNos”数组但我希望它添加未排序的“myRndmNos”和排序的“bubblesorted”数组我怎么得到它?

问题描述

当我尝试添加我从随机数和排序生成的两个数组时,它只会添加两次未排序的数组。我错过了什么?

        boolean sorted = false;
        int temp;
        while (!sorted) {
        sorted = true;
        for (int i = 0; i < myRndmNos.length - 1; i++) {
            if (myRndmNos[i] > myRndmNos[i+1]) {
                temp = myRndmNos[i];
                myRndmNos[i] = myRndmNos[i+1];
                myRndmNos[i+1] = temp;
                sorted = false;
            }
        }
    }

我认为这部分是错误

    for (int j = 0; j < myRndmNos.length; j++){
        bubblesorted[j] = myRndmNos[j];
    }
    
    System.out.println("Sorted"); 
    System.out.println(Arrays.toString(bubblesorted));
    
    if(myRndmNos.length == bubblesorted.length) 
        { 
            for (int k = 0; k < myRndmNos.length; k++)
            {
                arraySum[k] = myRndmNos[k] + bubblesorted[k];
                
            }
            System.out.println("Element-wise added two arrays");
            System.out.println(Arrays.toString(arraySum));
        }
        else
        {
            System.out.println("Two arrays are not equal");
        }
    }
}
 

解决方法

您是在将值分配给新的冒泡排序数组之前还是在它之后进行排序? 查看代码,看起来您已经对数组进行了排序,然后将相同的值分配给冒泡排序数组。这导致在数组中添加相同的元素。 我建议先创建两个数组,然后再进行排序和添加功能。