[code="java"]
public class BubbleSort {
public static void bubbleSort(int[] number) {
int m, n;
for (m = number.length - 1; m > 1; m--) {
for (n = 0; n < m; n++) {
if (number[n] > number[n + 1]) {
swap(number, n, m);
}
}
}
}
private static void swap(int[] number, int i, int j) {
int t;
t = number[i];
number[i] = number[j];
number[j] = t;
}
public static void main(String[] args) {
int[] num = { 3, 5, 6, 10, 32, 43, 1 };
bubbleSort(num);
for (int i = 0; i < num.length; i++) {
System.out.println(num[i]);
}
}
}
[/code]
排序结果为:
3
1
5
6
10
32
43
3和1的顺序没排过来,其他都是对的,那段代码有问题啊?
public static void bubbleSort(int[] number) {
int m, n;
for (m = number.length - 1; m > 0; m--) {
for (n = 0; n < m; n++) {
if (number[n] > number[n + 1]) {
swap(number, n, m);
}
}
}
}
把m>1改成>0就可以了
[quote] for (m = number.length - 1; m > 1; m--) { [/quote]
[size=medium]改成[/size]
[code="java"] for (m = number.length - 1; m > 0; m--) { [/code]