Java - 冒泡排序表演奇怪

时间:2017-01-12 00:06:02

标签: java arrays sorting bubble-sort

我一直在尝试使用冒泡排序对整数数组进行排序。我有一个字符的ArrayList,它也对应于整数数组(例如:integerArray [0]和charArray [0]一起),所以当我将冒泡排序应用于整数数组时,我想要在排序中进行相同的更改也可以使用char数组。我试图用下面的代码来做到这一点。如果查看输入和输出,问题会更清楚。我非常感谢你的帮助,谢谢。

冒泡排序:

    public static void BubbleSort() {
    int temp;
    char temp2;
    for (int x = 0; x < numberOfOccurences.length - 1; x ++) {
    for (int i = 0; i < numberOfOccurences.length - 1; i++) {
        if (numberOfOccurences[i] < numberOfOccurences[i + 1]) {
            temp = numberOfOccurences[i];
            temp2 = characters.get(i);
            numberOfOccurences[i] = numberOfOccurences[i + 1];
            characters.set(i, characters.get(i+1));
            numberOfOccurences[i + 1] = temp;
            characters.set(i + 1, characters.get(i));

        }
    }

    }
}

根据需要对数组进行反对:

3 : S
22 : i
14 : d
28 : h
30 : a
20 : r
34 : t
60 :  
11 : w
43 : e
14 : n
16 : o
2 : K
12 : m
16 : s
7 : c
9 : ,
7 : u
4 : v
7 : l
2 : b
2 : p
2 : f
3 : .
8 : y
6 : g
1 : P

泡泡分类后:

60 :  
43 : e
34 : e
30 : e
28 : e
22 : e
20 : e
16 : o
16 : s
14 : s
14 : s
12 : s
11 : s
9 : ,
8 : y
7 : y
7 : y
7 : y
6 : g
4 : g
3 : g
3 : g
2 : g
2 : g
2 : g
2 : g
1 : P

1 个答案:

答案 0 :(得分:0)

if语句的最后一行有拼写错误。它应该是

characters.set(i + 1, temp2);

而不是

characters.set(i + 1, characters.get(i));