-4
我在介紹Java課程,我只是想通過一些練習領先於曲線,所以我正在製作一個泡沫排序程序。出於某種原因,它只會穿過外部循環兩次。Java Bubble排序迭代只有兩次
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;
}
據我所知道的,所發生的事情是在第二次迭代之後,它不會重置「發現」爲0,因此不會通過循環再次運行。有任何想法嗎?
只要內部循環退出時'isOrdered'設置爲0,外部循環將退出。只要數組的最後兩個元素已經就緒,就會發生這種情況。你需要回到你的邏輯繪圖板。 – 2014-09-05 03:01:21
您應該嘗試使用調試器並逐步完成代碼 – dehrg 2014-09-05 03:06:01
您是否可以將您的示例輸入發佈到您的數組列表中 – 2014-09-05 03:06:46