【发布时间】:2017-01-12 00:06:01
【问题描述】:
我一直在尝试使用冒泡排序对整数数组进行排序。我有一个字符数组列表,它也对应于整数数组(例如: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
【问题讨论】:
-
在交换它们之前从
List中提取字符,否则你会喜欢使第一个值等于第二个 -
@MadProgrammer 它们已经存储在两个单独的数组中。
-
仔细看看
characters.set(i, characters.get(i+1));和characters.set(i + 1, characters.get(i));,首先将i设置为i+1的字符,然后将i + 1设置为i的字符,即基本上覆盖i处的字符并将相同的值设置回i + 1...
标签: java arrays sorting bubble-sort