Ну, я пробовал это некоторое время, и я не могу понять это. В основном моя проблема заключается в том, когда код работает и достигает первого if (Bubblesort.get(j))
автоматически переходит на другой if
, не изменяя значения и повторяя, пока не будет отсортировано. Есть идеи ?Метод bubblesort (Домашнее задание)
package APS;
import java.util.ArrayList;
import APS.RandomArray;
public class BubbleSort {
BubbleSort(){
RandomArray Ordenar = new RandomArray();
ArrayList<Integer> Bubblesort = Ordenar.vetores();
boolean controle;
for (int i = 0; i < Bubblesort.size()-1; i++){
controle = true;
for (int j =0; j < (Bubblesort.size()-i); j++){
if (Bubblesort.get(j).compareTo(Bubblesort.get(j+1))>0){
Integer a = Bubblesort.get(j);
Bubblesort.set(i, Bubblesort.get(j+1));
Bubblesort.set(j+1, a);
controle = false;
}
if (controle){
break;
}
}
}
for(int i = 0; i < Bubblesort.size();i++){
System.out.println(Bubblesort.get(i));
}
}
}
Теперь, когда я ** фиксированный ваши углубления **, вы можете увидеть проблемы: 'если (Контрол)' заявление должно быть * вне * внутренний цикл. – Andreas
Кроме того, первый 'Bubblesort.set (' должен быть 'set (j,', а не 'set (i,' и ваш цикл 'for (int j' должен быть' j <(Bubblesort.size() - i-1) '. – Andreas
Спасибо. Теперь он входит в цикл, но все еще не отсортирован:/ –