冒泡排序

原理

从小到大的场景 

  1. 相邻两个元素比较,如果前面大于后面,则交换
  2. 第一圈之后,最大的在后面
  3. 第二圈开始,最后一位可以不参与比较

代码

 public static void bubbleSort(int[] arr){
     for(int i = 0; i< arr.length -1; i++){
         // -x 让每次比较的个数减一, -1,让角标越界不发生
         for (int j = 0; j < arr.length - i - 1; j++) {
             //相邻两个比较,大的放后面
             if(arr[j] > arr[j+1]){
                 int temp = arr[j];
                 arr[j] = arr[j+1];
                 arr[j+1] = temp;

             }

         }
     }

 }
    public static void printArray(int[] arr){
        System.out.print("[ ");
        for (int i = 0 ;i < arr.length  ;i++){

            if(i < arr.length -1){
            System.out.print(arr[i]+ ",");}
            else {
                System.out.print(arr[i]+" ]");
            }
        }
    }

    public static void main(String[] args){
        int[] arr = {2,43,55,5,22,33,88,1,0};
        System.out.println("Before sort : ");
        printArray(arr);
        bubbleSort(arr);
        System.out.println("\nAfter sort : ");
        printArray(arr);

    }

测试

Before sort :
[ 2,43,55,5,22,33,88,1,0 ]
After sort :
[ 0,1,2,5,22,33,43,55,88 ]

posted @ 2016-07-10 16:58  binfoo  阅读(133)  评论(0编辑  收藏  举报