Java 二维数组选择排序
我在学校上Java课程。Java对我来说看起来简单但复杂 我在排序二维数组时遇到问题。请帮帮我 这是我编的代码。我不知道为什么它不起作用Java 二维数组选择排序,java,multidimensional-array,selection-sort,Java,Multidimensional Array,Selection Sort,我在学校上Java课程。Java对我来说看起来简单但复杂 我在排序二维数组时遇到问题。请帮帮我 这是我编的代码。我不知道为什么它不起作用 public static void selectionSort(int[][] list) { for (int k = 0; k < list.length;k++){ for (int i = 0; i < list[k].length;i++) { int currentMin = list[
public static void selectionSort(int[][] list) {
for (int k = 0; k < list.length;k++){
for (int i = 0; i < list[k].length;i++) {
int currentMin = list[k][i];
int currentMinIndexRow = k;
int currentMinIndexColumn = i;
if (k == 3 && i == 3) continue;
for (int m = k; m < list.length; m++) {
for (int j = i; j < list[k].length; j++) {
if (m == k && i == j) continue;
if (currentMin > list[m][j]) {
currentMin = list[m][j];
currentMinIndexRow = m;
currentMinIndexColumn = j;
}
}
}
if (currentMinIndexRow != k && currentMinIndexColumn != i) {
list[currentMinIndexRow][currentMinIndexColumn] = list[k][i];
list[k][i] = currentMin;
}
}
}
}
publicstaticvoidselectionsort(int[]list){
for(int k=0;k列表[m][j]){
currentMin=列表[m][j];
CurrentMiniIndexRow=m;
currentMinIndexColumn=j;
}
}
}
if(currentMinIndexRow!=k&¤tMinIndexColumn!=i){
列表[currentMinIndexRow][currentMinIndexColumn]=列表[k][i];
列表[k][i]=currentMin;
}
}
}
}
非常感谢你们,伙计们
我试图编写一个程序,提示用户输入两个整数列表,并显示两者是否相同 比如,, “输入列表1:51 25 22 6 1 4 24 54 6 输入列表2:51 22 25 6 1 4 24 54 6 这两个阵列是相同的 输入列表1:51 5 22 6 1 4 24 54 6 输入列表2:51 22 25 6 1 4 24 54 6 这两个数组不相同 这是我写的
public static void main(String[] args) {
java.util.Scanner input = new java.util.Scanner(System.in);
int[][] list1 = new int[3][3];
int[][] list2 = new int[3][3];
System.out.print("Enter list1: ");
for (int row=0 ;row < list1.length ;row++){
for (int column=0;column<list1[row].length; column++){
list1[row][column] = input.nextInt();
}
}
System.out.print("Enter list2: ");
for (int row=0 ;row < list2.length ;row++){
for (int column=0;column<list2[row].length; column++){
list2[row][column] = input.nextInt();
}
}
selectionSort(list1);
selectionSort(list2);
if (equals(list1, list2) == true)
System.out.println("The two arrays are identical");
else
System.out.println("The two arrays are not identical");
}// void main
public static boolean equals(int[][] m1, int[][] m2){
boolean result = true;
for (int row=0 ;row < m1.length ;row++){
for (int column=0 ;column<m1[row].length ; column++){
if (m1[row][column] != m2[row][column]) {result = false; break;}
}
}
return result;
}// boolean equals
public static void selectionSort(int[][] list) {
for(int k = 0; k < list.length;k++){
for(int i = 0; i < list[k].length;i++) {
int currentMin = list[k][i];
int currentMinIndexRow = k;
int currentMinIndexColumn = i;
if(k == 3 && i == 3) continue;
for(int m = k; m < list.length; m++){
for (int j = i; j < list[k].length; j++) {
if (m == k && i == j) continue;
if (currentMin > list[m][j]) {
currentMin = list[m][j];
currentMinIndexRow = m;
currentMinIndexColumn = j;
}
}
}
if (currentMinIndexRow != k && currentMinIndexColumn != i) {
list[currentMinIndexRow][currentMinIndexColumn] = list[k][i];
list[k][i] = currentMin;
}
}
}
}
publicstaticvoidmain(字符串[]args){
java.util.Scanner输入=新的java.util.Scanner(System.in);
int[][]list1=新int[3][3];
int[][]list2=新int[3][3];
系统输出打印(“输入列表1:”);
for(int row=0;row 对于(int column=0;column非常感谢大家
我明白了为什么我错了
有一个非常简单的错误
if (currentMinIndexRow != k || currentMinIndexColumn != i) {
list[currentMinIndexRow][currentMinIndexColumn] = list[k][i];
list[k][i] = currentMin;
}
上面的代码是我更正的。谢谢。你必须做得比不知道更好。给出一些问题示例-输入/输出等。添加一些调试语句和有用信息:System.out.println(…);看看它告诉了你什么。对二维数组排序的意思有点不清楚。也许举个例子会有所帮助。我试着把我的问题弄清楚!