博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

二维数组按列序号排序 面试经典

Posted on 2009-04-30 15:44  钟悍  阅读(1506)  评论(0编辑  收藏  举报
public class ArrayOrderBy {

    
public static void main(String[] args) {
        
int array[][] = new int[][] { 
                { 
334688591278 },
                { 
77283575601 },
                { 
12343732594523 },
                { 
91103235473418 },
                { 
12451452669833 },
                { 
474584244523657 },
                { 
12343434334235778 },
                { 
1234984565412586 },
                { 
457823478378954568783 } };// 要排序的数组
        orderby(array,4);
    }
    
/*
     * 第一个参数为要排序的数组
     * 第二个参数为要排序的那一列
     
*/
    
private static void orderby(int arr[][],int i){
        
for (int b = 0; b < arr.length; b++) {
            
for (int j = 0, a=arr.length; j < a-b-1; j++) {
                
if(arr[j][i]>arr[j+1][i]){
                    
for (int k = 0; k < arr[0].length; k++) {
                        
int temp=arr[j+1][k];
                        arr[j
+1][k]=arr[j][k];
                        arr[j][k]
=temp;
                    }
                }
            }
        }
        
        
for (int j = 0; j < arr.length; j++) {
            
for (int j2 = 0; j2 < arr[0].length; j2++) {
                System.out.print(arr[j][j2]
+" ");
            }
            System.out.println();
        }
    }
}