简单编程(二十三)对一个二维数组a进行升序排列

编写一个方法public static int[][] dyadicArraySort(int a[][]),能够实现对一个二维数组a进行升序排列,要求整个二维数组中最小的值为a[0][0],然后依次是a[0][1],a[0][2]….,a[1][0],a[1][1]…..,使用一个无序的二维数组对你编写的方法进行检验。(基本思想:在方法体中,先将二维数组转换为一个一维数组,然后对一维数组进行排序,排好序后再将一维数组

import java.util.Arrays;


public class vgygkgv {

	public static int[][] dyadicArraySort(int a[][]){
		int n=0;
		for (int i = 0; i < a.length; i++) {
			for (int j = 0; j < a[i].length; j++) {				
				n++;
			}
		}//已经统计出二维数组中数据的个数
		int b[]=new int[n];
		int k=0;
		for (int i = 0; i < a.length; i++) {
			for (int j = 0; j < a[i].length; j++) {				
				b[k]=a[i][j];
				k++;
			}
		}//已经把二维数组的各元素搬到了一维数组b中
		
		Arrays.sort(b);//对一维数组b进行升序排列
		
		k=0;
		for (int i = 0; i < a.length; i++) {
			for (int j = 0; j < a[i].length; j++) {				
				a[i][j]=b[k];
				k++;
			}
		}//已经一维数组b中个元素放回二维数组中
		
		return a;
		
		
	}
	public static void main(String[] args) {
		int n[][]={{8,7,10},
					{9,1},
					{15,0,-3,16}};
		output(n);
		dyadicArraySort(n);
		output(n);
		
	}
	
	public static void output(int a[][]){
		for (int i = 0; i < a.length; i++) {
			for (int j = 0; j < a[i].length; j++) {				
				System.out.print(a[i][j]+" ");
			}
			System.out.println();
		}
		System.out.println("-----------------");
	}
}

中的各个元素依次搬到二维数组中)
展开阅读全文

没有更多推荐了,返回首页