大虾帮我这个java程序为什么死循环!

来源:百度知道 编辑:UC知道 时间:2024/04/29 23:57:45
这是一个给给定二维数组排序
public class erweishuzu {
public static void main(String[] args) {
int[][] a={{39,38,35,33},{28,26,24,23},{18,15,13,280},{2,5,9,7}};
int i=0;
int j=0;
int s=0;
int k=0;
int temp=0;
for(;i<4;i++){
for(;j<4;j++){
for(s=i;s<4;s++){
for(k=0;k<4;k++){
if(i==s){
k=j+1;
}
if(j==3){
for(s=i+1;s<4;s++){
for(k=0;k<4;k++){
if(a[i][j]>a[s][k]){
temp=a[i][j];
a[i][j]=a[s][k];
a[s][k]=temp;
}}
}
continue;}
if(a[i][j]>a[s][k]){
temp=a[i][j];
a[i][j]=a[s][k];
a[s][k]=temp;
}
}

}
}

}for(i=0;i<4;i++)
for(j=0;j<4;j++)
System.out.println(a[i][j]);
}
}
我要给这个数组按照从小到大顺序排序,那帮我修改下好吗?我看看

我写了个这个,你看一下。
public class Order {
private int[][] m;
public Order(int[][] n){
this.m = n;
for(int k=0;k<m.length*m[0].length-1;k++){
for(int i=0;i<m.length;i++){
for(int j=0;j<m[i].length;j++){
if (j==m[i].length-1 && i==m.length-1);
else if (j==m[i].length-1 && i!=m.length-1) {
if(m[i][j]>m[i+1][0]){
int aux = m[i+1][0];
m[i+1][0] = m[i][j];
m[i][j] = aux;
}
}
else if(m[i][j]>m[i][j+1]){
int aux = m[i][j+1];
m[i][j+1] = m[i][j];
m[i][j] = aux;
}
}
}
}
for(int i=0;i<m.length;i++){
for(int j=0;j<m[i].length;j++){
System.out.print(m[i][j]+" ");
}
}
}
public static void main(String[] args) {
int[][] a={{39,38,35,33},{28,26,24,23},{18,15,13,280},{2,5,9,7}};
Order m = new Order(a);