2016-12-12 180 views
0

我有一个有500行和250列的2d数组。如何排序2d数组并跟踪数组索引?

{ 0, 1, 2, 3, ... 250 
    1, 1, 1, 1, 
    2, 2, 2, 2, 
    ... 
    500 
} 

我想按列对值进行排序,并能够跟踪他们所在的行位置的原始索引。

我该怎么做?以前当我只有一列时,我使用了比较器功能,但现在看起来并不是一个可行的选择。

非常感谢,我会确保选择一个最佳答案。

+0

使用归并排序。将2d数组分成2 * 2。 – vahid

+0

您是如何使用“比较器”跟踪原始索引的? –

+0

嗨瓦希德,你能请进一步解释。 @Andrew,我有索引值输入到第二列,跟踪我的第一列 – AnthonyJ

回答

0

实现,这将是使用数据结构来存储原始索引和价值的最简单方法:

class Entry implements Comparable<Entry>{ 
    public int index; //proper OOP would require using encapsulation, but for 
    public int value; //demonstration I'll just use direct variable access 

    public int compareTo(Entry e){ 
     return Integer.compare(value, e.value); 
    } 
}