-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.set(j+1, temp);
이 list.get(j+1)
를 사용해야 문제는 당신이
[1, 3, 3, 6, 6, 6, 8, 8, 45]