【发布时间】:2014-10-29 22:39:16
【问题描述】:
我正在学习 Java 入门课程,只是想通过一些练习来领先一步,所以我正在制作一个冒泡排序程序。出于某种原因,它只会通过外循环两次。
public ArrayList SortArray(ArrayList<Integer> u) {
int temp;
int spot;
for (int isOrdered = 1; isOrdered == 1;) {
for (spot = 0; spot < u.size() - 1; spot ++) {
System.out.println(u.get(spot) + " " + u.get(spot + 1) + " " + spot);
if (u.get(spot) > u.get(spot + 1)) {
temp = u.get(spot + 1);
u.set(spot + 1, u.get(spot));
u.set(spot, temp);
isOrdered = 1;
}
else {
isOrdered = 0;
}
}
}
return u;
}
据我所知,发生的事情是在第二次迭代之后,它不会将“spot”重置为 0,因此它不会再次运行循环。有什么想法吗?
【问题讨论】:
-
一旦内部循环退出,
isOrdered设置为 0,外部循环就会退出。只要数组的最后两个元素已经有序,就会发生这种情况。你需要用你的逻辑回到绘图板上。 -
您应该尝试使用调试器并单步执行您的代码
-
你可以在你的数组列表中发布你的示例输入
标签: java sorting loops iteration bubble-sort