我的作业要求我编写几种方法来比较.txt文件中的名字数组。
我目前停留在BubbleSort方法上。试图让它运行。
这是我对BubbleSort的代码:
public static int bubbleSort(String[] array) {
boolean swapped = false;
int compNumber = 0;
int length = length.array;
while (swapped = false) {
for (int i = 0; i < length.array-1; i++) {
if (array[i-1] > array[i]) {
String temp =
array[i-1] = array[i];
swapped = true;
}
}
}
return compNumber;
}
我不相信我正确交换,因为我不确定如何使用临时变量(因此它是空白的)。
有人可以看看这个并指出我正确的方向吗?
非常感谢!
答案 0 :(得分:0)
不确定您的算法是否正确,但这是交换的标准方法。如果你正在排序一个String数组,你还需要得到数值(我假设字符串包含数字?)。
还注意到你会得到一个超出范围的数组异常,如果你正在查看索引i-1,则从1开始。
还有一件事,i < length.array-1
应为i < array.length
还有一件事,循环应该继续,直到没有交换,所以它应该是while (swapped == true)
,并在每次迭代中重新设置为false。
public static void bubbleSort(String[] array) {
boolean swapped = true;
int compNumber = 0;
int length = length.array;
while (swapped == true) { //note the ==
swapped = false;
for (int i = 1; i < array.length; i++) {
compNumber++;
if (Integer.parseInt(array[i-1]) > Integer.parseInt(array[i])) {
String temp = array[i-1]
array[i-1] = array[i];
array[i] = temp;
swapped = true;
}
}
}
return compNumber;
}