Я нахожусь в курсе Java и просто пытаюсь опередить кривую с некоторой практикой, поэтому я делаю программу сортировки пузырьков. По какой-то причине он будет проходить только через внешний цикл дважды.Java Bubble Сортировать Iterates Only Twice
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, внешний контур выйдет. Это произойдет, когда последние два элемента массива уже в порядке. Вам нужно вернуться к чертежной доске с вашей логикой. –
Вы должны попробовать использовать отладчик и пройти через свой код – dehrg
можете ли вы разместить свои входы образцов в своем арраисте –