冒泡核心思想:
冒泡排序向右边冒泡的话,结果就是最后一个数就是最大的
冒泡排序向左边冒泡的话,结果就是第一个数就是最小的

这个好像不是冒泡吧。。。

private static void maoPaoSort(int [] arr){
        for(int i=0;i<arr.length;i++){
            for(int j=i+1;j<arr.length;j++){
                if(arr[i]>arr[j]){
                    swap(arr,i,j);
                }
            }
        }
    }

常规冒泡

private static void maoPaoSort1(int [] arr){
        for(int i=0;i<arr.length-1;i++){

            for(int j=0;j<arr.length-1-i;j++){
                if(arr[j]>arr[j+1]){
                    swap(arr,j,j+1);
                }
            }

        }
    }

flag标志是否已经有序

private static void maoPaoSort2(int [] arr){
        for(int i=0;i<arr.length-1;i++){
            boolean flag = false;
            for(int j=0;j<arr.length-1-i;j++){
                if(arr[j]>arr[j+1]){
                    swap(arr,j,j+1);
                    flag = true;
                }
            }
            //说明已经有序
            if(!flag){
                return;
            }
        }
    }

双向冒泡

 private static void maoPaoSort3(int [] arr){
        int left = 0,right = arr.length-1;

        while(left<right){

            for(int i=left;i<right;i++){
                if(arr[i]>arr[i+1]){
                    swap(arr,i,i+1);
                }
            }
            right--;

            for(int j=right;j>left;j--){
                if(arr[j]<arr[j-1]){
                    swap(arr,j,j-1);
                }
            }
            left++;
        }

    }

双向冒泡+记录swapPos

private static void maoPaoSort4(int [] arr){
        int left = 0,right = arr.length-1;
        int swapPos = left;

        while(left<right){

            for(int i=left;i<right;i++){
                if(arr[i]>arr[i+1]){
                    swap(arr,i,i+1);
                    swapPos = i;
                }
            }
            right = swapPos;

            for(int j=right;j>left;j--){
                if(arr[j]<arr[j-1]){
                    swap(arr,j,j-1);
                    swapPos = j;
                }
            }
            left = swapPos;
        }

    }