java中怎么对二维数组的列排序?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中怎么对二维数组的列排序?相关的知识,希望对你有一定的参考价值。

java中怎么对二维数组的列排序?谢谢指教!

这个就是可以直接排组的,根据数组的定义来。如a[][]=(1,2),(3,4)......类似这些追问

排序,已知一个打乱的二维数组,按列排序

应该怎么做呢

参考技术A 列排序的依据是什么呢?追问

升序降序差别很大吗?

应该是一样的

追答

我说的依据是,以什么为关键字对列进行排序?是每列的行首元素、最大元素、元素之和还是方差,还是其他什么依据?

追问

每列的行首元素,亲

追答import java.util.Arrays;

public class Test 
    public static<T extends Comparable<? super T>> void sort(T a[][])
sort(a, true);
    
    
    public static<T extends Comparable<? super T>> void sort(T a[][], boolean ascend)
sortHelper(a, 0, a.length - 1, ascend);
    
    
    private static<T extends Comparable<? super T>> void sortHelper(T[][] arr, int l, int r, 
    boolean ascend)
if(l>=r) return;
int i = l;
int j = r;
T[] key = arr[l];

while(i<j) 
    while(i<j&&compare(key[0], arr[j][0], ascend)) j--;
    arr[i] = arr[j];
    
    while(i<j&&compare(key[0], arr[j][0], !ascend)) i++;
    arr[j] = arr[i];


arr[i] = key;
sortHelper(arr, l, i-1, ascend);
sortHelper(arr, i+1, r, ascend);
    
    
    private static<T extends Comparable<? super T>> boolean compare(T x, T y, boolean ascend) 
return ascend ? x.compareTo(y) < 0 : x.compareTo(y) > 0;
    
    
    public static void main(String args[]) 
Integer[][] a = new Integer[4][];
a[0] = new Integer[]5,6;
a[1] = new Integer[] 1,2,3;
a[2] = new Integer[] 4,5,6,7;
a[3] = new Integer[] 8,9;
sort(a);
for(Integer[] i : a) 
    System.out.println(Arrays.toString(i));

    

追问

虽然看不很懂,但还是谢谢你

本回答被提问者采纳

以上是关于java中怎么对二维数组的列排序?的主要内容,如果未能解决你的问题,请参考以下文章

JAVA中如何对二维数组的每一列进行排序

Vector容器 二维数组sort()排序

PHP二维数组怎么按某个字段排序

JAVA中如何对二维数组的每一列进行排序

sort int[][] 二维数组排序

thinkPHP二维数组排序