2012-01-26 2 views
0

im очень новый в java Мне нужен весь алгоритм сортировки .... я могу найти способы сортировки массива 1 D, но 2 D массив очень запутан. ПОЖАЛУЙСТА, помогитекак отсортировать массив двумерного массива (только по столбцу мудрый) по выбору сортировки в java

извините, у меня еще нет кода, я не знаю с чего начать! (это код массива в один D :), но мне нужно один из 2 D (только колонки мудрый выбор сортировки)

public static void sort(Comparable[] table) { 
int n = table.length; 
for (int fill=0; fill < n-1; fill++) { 


int posMin = fill; 
for(int next=fill; next < n; next++) { 
if(table[next].compareTo(table[posMin] < 0) { 
posMin = next; 

} 
} 
//Exchange table[fill] and table[posMin] 
Comparable temp = table[fill]; 
table[fill] = table[posMin]; 
table[posMin] = temp; 


} 
+0

честно говоря я только разместил код, чтобы получить введенный мой вопрос ... пожалуйста, пожалуйста, не флаг это я действительно нужна помощь любого рода – user1172026

+0

Что упорядоченность вы пытаетесь достичь в 2D-массиве? Невозможно просто восходящее или нисходящее, потому что оно не линейно. Вы хотите, например, ячейки в порядке возрастания в каждом столбце и столбцах в порядке убывания среднего значения ячейки? –

+0

Мне нужны ячейки в порядке возрастания в каждом столбце. строки должны оставаться неизменными. – user1172026

ответ

0

Из комментариев, это звучит, как вы можете рассматривать каждый столбец как 1D массив, поэтому вы можете применить существующее одномерное решение к каждому столбцу: везде, где вы ссылаетесь на таблицу [x], теперь вы можете обратиться к таблице [x] [c], где c - сортируемый столбец (или таблица [c] [ x], не определенный, какой индекс вы используете для столбца).

0

Если у вас есть каждая последовательность ДНК, это строка, у вас есть List из Strings. Затем просто отсортируйте строки.

List<String> dnaSequences = new ArrayList<String>(); 
dnaSequences.add("AGCAGAAGCGGAGCTTTAAGATGAATATAAATC"); 
... 
dnaSequences.add("AGCAGAAGCGGAGCTTTAAGATGAATATAAATC"); 
Collections.sort(dnaSequences);