【发布时间】:2021-07-02 06:57:21
【问题描述】:
尝试通过将字符串转换为 char 数组来对字符串进行选择排序,这对我来说一切似乎都是正确的,但它并没有完全对数组进行排序并返回一个半排序的数组。
public class Anagram {
public static void main(String[] args) {
String str1 = "ksdvbjksbjdjkk";
int minInd,
min,
currChar;
char temp;
char str1arr[] = str1.toCharArray();
for (int i = 0; i < str1arr.length; i++) {
minInd = i;
min = str1.charAt(i);
for (int j = i; j < str1arr.length; j++) {
currChar = str1.charAt(j);
if (currChar < min) {
minInd = j;
}
}
temp = str1arr[minInd];
str1arr[minInd] = str1arr[i];
str1arr[i] = temp;
}
for (char e: str1arr) System.out.print(e);
}
}
输出:
jkbsbdkvdjjkks
【问题讨论】:
-
我建议使用调试器单步执行您的程序,或者添加一些 printlns。您很快就会发现问题所在。