Я пытаюсь отсортировать строку.Я отсортировал первые буквы, но последующие не отсортированы.Мне также нужно добавить слова, которые не совпадают, с самым длинным словом с помощью *, но я понятия не имею, как это сделать.Моя БАЗА - 27. Алфавиты и символы * для отступа.Текущий результат - яблочный алгоритм australia jack olympic sell sleep
Для этой цели я использовал комбинацию Radix sort и Bucket Sort.Я звоню в Bucket Sort в виде Radix.Я думаю, что проблема в реализации сортировки BUcket.
private static void bucketSort(List<String> S, int d, int i) {
while(!S.isEmpty()) {
int DIVISOR = pow(BASE, i-1);
int MODULO = pow(BASE, i);
String s = S.remove(S.first());
int index = (s.length() <= d)? 0: s.charAt(i) - ('a'-1);
System.out.println(index);
int value = s.charAt(index);
int index2 = (value / DIVISOR) % MODULO;
buckets[index2].insertLast(s);
}
for (List<String> bucket : buckets) {
while (!bucket.isEmpty()) {
S.insertLast(bucket.remove(bucket.first()));
}
}
}
private static int pow(int base, int i) {
int pow = 1;
while (i > 0) {
pow *= base;
i--;
}
return pow;
}
алгоритм apple australia jack olympic sell sleep