-3
私はバブルソートを使用してリストを注文しようとしていますが、ソート後の出力は恐ろしく間違っています。コードのどこかに問題があるようですが、私はあまり確信していません...自分自身が愚かであるかもしれません。JavaのためのBubbleSortアルゴリズム
public static void main(String[] args) {
List list = new ArrayList();
list.add(1);
list.add(6);
list.add(3);
list.add(4);
list.add(45);
list.add(6);
list.add(234);
list.add(8);
list.add(9);
bubbleSort(list);
System.out.println(list);
}
public static void bubbleSort(List<Integer> list) {
int n = list.size();
int temp = 0;
for (int i = 0; i < n-i; i++) {
for (int j = 0; j < (n - i - 1); j++) {
if (list.get(j) > list.get(j+1)) {
temp = list.get(j);
list.set(j,list.get(j+1));
list.set(list.get(j+1), temp);
}
}
}
}
ことができます出力は問題があなたの
list.set(list.get(j+1), temp);
を交換する代わりにlist.get(j+1)
を使用して
list.set(j+1, temp);
であるべきである[1, 3, 3, 6, 6, 6, 8, 8, 45]