刚学习了数组的排序,一维数组排序基本学会,想试试二维数组的排序~~
但是试了很久只停留在 数组“行”的排序上,对于“列”的综合排序编不出来。。。
求大神指教如何编写二维数组的排序~~小弟在此谢过
本人不才,源程序如下:
class PaiXu
{
public static void main(String[] args)
{
int [][]arr=new int[3][]; //定义数组元素
arr[0]=new int[] {81,72,92};
arr[1]=new int[] {21,2,27};
arr[2]=new int[] {91,3,35};
System.out.println("before:");
printarr(arr); //打印排序前数组
bubble(arr); //数组排序
System.out.println("after:");
printarr(arr); //打印排序后数组
}
public static void printarr(int [][]arr) { //打印数组
for (int i=0;i<arr.length ;i++ ) { //设置循环语句遍历数组元素
for (int j=0;j<arr.length ;j++ ) {
System.out.println("arr["+i+"]["+j+"]="+arr[j]); //打印数组对应元素
}
}
System.out.println(); //结果之间空出一行
}
public static void bubble(int [][]arr) { //数组排序
for (int i=0;i<arr.length;i++) { //定义外层循环
for (int j=0;j<arr.length-1 ;j++) { //定义内层循环
if(arr[j]>arr[j+1]) { //数组相邻元素比较
change(arr); //交换元素,使较大的元素位于arr[j+1]
}
/*if(arr[j]>arr[i+1][j]) { //数组相邻元素比较
int temp=arr[j]; //交换元素,使较大的元素位于arr[j+1]
arr[j]=arr[i+1][j];
arr[i+1][j]=temp;
} 注:此部分原打算在行排序完成后再进行列排序,后来发现定义域不同,可忽略*/
}
}
}
public static void change(int [][]arr) {
int a,b;
int [][]arr=new int [a];
if (arr[a]>arr[a][b+1]) {
int c=arr[a];
arr[a]=arr[a][b+1];
arr[a][b+1]=c;
}
printarr(arr);
}
}
|
|