-1

这是矩阵,你比较第一行和第二行第一列的值,如果它等于你

打印并移动到第二列做同样的事情,如果不相等则打印低值和下一个第三列做同样的事情,现在比较第二行和第三行做同样的事情。对整个矩阵执行此操作以升序排列..如何使用比较类解决此问题..请帮帮我

在此处输入代码:int a[][] = {{3,6,5},

            {3,5,7},

            {2,1,6},

            {2,1,3},

            {7,8,5},

            {6,3,2}};

O/P 矩阵是

[2 1 3]

[2 1 6]

[3 5 7]

[3 6 5]

[6 3 2]

[7 8 5]

4

1 回答 1

0

快速解决方案可能如下

import java.util.Arrays;
import java.util.Comparator;

class Compare2Darray {
    public static Comparator<Integer[]> getComparator() {
        return new Comparator<Integer[]>() {
            public int compare(Integer[] o1, Integer[] o2) {
                for (int i = 0; i < o1.length; i++) {
                    if (o1[i].compareTo(o2[i]) != 0) {
                        return o1[i].compareTo(o2[i]);
                    }
                }
                return 0;
            }};
    }

    public static void main (String[] args) {
        Integer a[][] = {{3,6,5}, {3,5,7}, {2,1,6}, {2,1,3}, {7,8,5}, {6,3,2}};
        Arrays.sort(a, getComparator());
        for (int i = 0; i < a.length; i++) {
            System.out.println(Arrays.toString(a[i]));
        }
    }
}
于 2013-10-15T14:50:28.273 回答