java 冒泡排序 不按顺序排列 请问怎么回事?

class P { public static void main(String[] args) { int arr[] = {5,1,6,4,2,8,9}; sort(arr); for(int x=0; x<arr.length; x++) { System.out.print(arr[x]+","); } } public static void sort(int[] arr) { for(int x=0; x<arr.length-1; x++) { for(int y=0; y<arr.length-x-1;y++) { if(arr[x]>arr[y+1]) { int temp = arr[y]; arr[y] = arr[y+1]; arr[y+1] = temp; } } } } }
已解决!

class P{
public static void main(String[] args) {
int arr[] = { 5, 1, 6, 4, 2, 8, 9 };
sort(arr);
for (int x = 0; x < arr.length; x++) {
System.out.print(arr[x] + ",");
}
}

public static void sort(int[] arr) {
for (int x = 0; x < arr.length - 1; x++) {
for (int y = 0; y < arr.length - x - 1; y++) {
// è¿™é‡Œå†™é”™äº†
// if (arr[x] > arr[y + 1]) {
if (arr[y] > arr[y + 1]) {
int temp = arr[y];
arr[y] = arr[y + 1];
arr[y + 1] = temp;
}
}
}
}
}

运行结果:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-10-04
您好.您在方法里面写错了,不是:if(arr[x]>arr[y]),换成if(arr[y]>arr[y+1])试试
第2个回答  2014-10-04
你的输出写在排序前面,排好了你也不知道啊!