需要Java气泡排序帮助吗
晚上好, 我和我的巴德试图弄明白为什么这个程序不会对我们输入的名字进行冒泡排序,也许有人会暗示一下需要Java气泡排序帮助吗,java,bubble-sort,Java,Bubble Sort,晚上好, 我和我的巴德试图弄明白为什么这个程序不会对我们输入的名字进行冒泡排序,也许有人会暗示一下 public static void sortDatPlane(String Ref[]){ int n = Ref.length; int k = 1; int j = n - 2; int i; while(k < n){ i = 0; while (i <= j) { if(n
public static void sortDatPlane(String Ref[]){
int n = Ref.length;
int k = 1;
int j = n - 2;
int i;
while(k < n){
i = 0;
while (i <= j) {
if(notInOrder(Ref, i, i+1)){
swap(Ref, i, i+1);
}
i++;
}
k++;
}
for (String Ref1 : Ref) {
System.out.println(Ref1);
}
}
public static void swap(String Ref[], int i, int j){
String temp = Ref[i];
Ref[i] = Ref[j];
Ref[j] = temp;
}
public static boolean notInOrder(String Ref[],int i, int j){
return Ref[i].substring(0,1).compareTo(Ref[j].substring(0,1)) == 1;
}
正如Ken Y-N在注释中所述,您只比较字符串子字符串0的前几个字符,1会这样做。删除该部分,它可能会工作。请向我们展示什么是交换和不交换顺序,并说明出现了什么问题。你以为会发生什么事,后来又发生了什么事?@Bálint编辑,对不起。它不会排序,只是作为常规清单1-aac2-aab-3aaa打印。为什么只比较字符串的第一个字符?compareTo并不能保证只有1意味着大于-它可以是任何正整数。它已经起作用了:OP的输出完全按照第一个字符排序;->@凯文:对我来说,这听起来像是个特写