gpt4 book ai didi

java - 如何使用 Java 对字符串进行排序

转载 作者:太空宇宙 更新时间:2023-11-04 09:44:34 25 4
gpt4 key购买 nike

我正在尝试对字符串进行排序。我已对第一个字母进行排序,但后续字母未排序。我还需要用 * 填充与最长单词不同的单词,但我不知道如何做到这一点。我的 BASE 是 27。填充的字母和 * 字符。目前的结果是苹果算法澳大利亚 jack 奥林匹克卖 sleep

为此,我结合使用了基数排序和桶排序。我把桶排序称为基数排序。我认为问题出在 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;
}

算法苹果澳大利亚 jack 奥林匹克卖 sleep

最佳答案

为什么不使用 Collections.sort 等现有方法?

List<String> S = Arrays.asList("apple", "algorithm", "australia", "jack", "olympic", "sell", "sleep");
Collections.sort(S);

或者,如果您想指定 lambda 排序函数:

S.sort((p1, p2) -> p1.compareTo(p2));

您需要填充有什么原因吗?最简单的解决方案是找到所有字符串的最大长度并添加缺失的空格。

关于java - 如何使用 Java 对字符串进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55579322/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com