public class ArraySort {
public static int[] bubbleSort(int[] array){
for(int i=0;i<array.length-1;i++){
for(int j=0;j<array.length-i-1;j++){
if(array[j]>array[j+1]){
int temp =array[j];
array[j]=array[j+1];
array[j+1]=array[j];
}
}
}
return array;
}

public static void main(String[] args) {
int[] a = {2,3,1,4,5};
bubbleSort(a);
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
}
}怎么最后的结果变成这个了?不解!
1
1
1
4
5

解决方案 »

  1.   

     array[j+1]=array[j];  这句应该为 array[j+1]=temp 
      

  2.   

    public class ArraySort {
        public static int[] bubbleSort(int[] array){
            for(int i=0;i<array.length;i++){
                for(int j=0;j<array.length-1;j++){
                    if(array[j]>array[j+1]){
                        int temp =array[j];
                        array[j]=array[j+1];
                        array[j+1]=temp;  // 修改
                    }
                }
            }
            return array;
        }
        
        public static void main(String[] args) {
            int[] a = {2,3,1,4,5};
            bubbleSort(a);
            for(int i=0;i<a.length;i++){
                System.out.println(a[i]);
            }
        }
    }
    改了下,编译运行没问题了