извините за мой плохой английский. Я styding LSD String Сортирует алгоритм, и у меня есть вопрос, связанный с ним. Вот мой код. Я хочу, чтобы вход W не фиксировался, например:Как использовать LSD String Сортировать без ввода фиксированной длины?
String[] a = {"38A", "3TW723", "2IYEA938", "3CI34780720"};
public static void sort(String[] a, int w) { // Sort a[] on leading W characters.
int R = 256;
int N = a.length;
//For each of the character from right to left
for (int d = w - 1; d >= 0; d--) {
//1. count the frequencies
int[] count = new int[R + 1];
for (int i = 0; i < N; i++) {
count[a[i].charAt(d) + 1]++;
}
//2. Transform counts to indices
for (int r = 0; r < R; r++) {
count[r + 1] += count[r];
}
//3. Distribute
String aux[] = new String[N];
for (int i = 0; i < N; i++) {
aux[count[a[i].charAt(d)]] = a[i];
count[a[i].charAt(d)]++;
}
//4. Copyback
System.arraycopy(aux, 0, a, 0, N);
}
}
Это неясно. В чем проблема с кодом? Чего вы пытаетесь достичь. Что значит «вход W не фиксирован»? – amit
В моем коде int w фиксирован. Вы должны ввести W для функции sort(). Я хочу удалить int W :( – user3188750
Если вы не вводите W, как функция определит, сколько ведущих символов сортируются? – FredK