黑马程序员 二维数组排序

来源:互联网 发布:steam mac游戏目录 编辑:程序博客网 时间:2024/04/30 20:39

---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------

//将二维数组做参数调用sort即可
    public static int[][] sort(int[][] array){
        int i,j,temp;
        for(int[] a:array){
            temp=a.length;
            for(i=1;i<temp;i++){
                rearInsert(a,i);
            }
        }
        for(i=0;i<array.length-1;){
            for(j=array.length-1;j>i;j--){
                if(array[i][array[i].length-1]>array[j][0]){
                    break;
                }
            }
            if(j!=i){
                temp=array[i][array[i].length-1];
                array[i][array[i].length-1]=array[j][0];
                array[j][0]=temp;
                frontInsert(array[j],0);
                rearInsert(array[i],array[i].length-1);
            }
            else{
                i++;
            }
        }
        return array;
    }
    private static void rearInsert(int[] array,int index){
        int temp=array[index],i,j;
        for(i=0;i<index;i++){
            if(array[i]>=temp){
                break;
            }
        }
        for(j=index;j>i;j--){
            array[j]=array[j-1];
        }
        array[j]=temp;
    }
    private static void frontInsert(int[] array,int index){
        int temp=array[index],i,j;
        for(i=array.length-1;i>index;i--){
            if(array[i]<temp){
                break;
            }
        }
        for(j=index;j<i;j++){
            array[j]=array[j+1];
        }
        array[j]=temp;
    }

---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------