2016-12-12 81 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); 
    } 
}