八大排序(一)-------冒泡排序

从小到大的冒泡排序

冒泡排序是通过对待排序序列从前向后,依次比较相邻元素的值,如果逆序则交换顺序,使值大的元素移向后部。冒泡排序是一种稳定的算法,时间复杂度 O(n2)

下标从1开始  

因为有10个数 所以外循环要循环10次 所以i = 10 i>0 i--

第一次要9趟 第二次8 第三次7   

  第一次 1 2   1 1+1 比较

  第二次 2 3   2  2+1比较

  第九次 9 10  j j+1 比较  所以j = 1 j<i 

判断条件是 a[j] > a[j+1] 就交换位置

class MaoPao {
   
    int[] arr = {0,13, 14, 26, 7, 9, 22, 5, 8, 11,17};
    public static void main(String[] args) {
       
        MaoPao mp = new MaoPao();
        mp.maopao();
        System.out.println("---------------分隔符--------------------");
        mp.prin();
    }
    void maopao(){
        int i = 0;
        int j = 0;
        int temp = 0;
        //  为了下标从1开始 看的方便一点
        for(i=10;i>0;i--){  //10次循环   设成10 是因为有10个数 方便理解  i=9;i>0    下面的j = 0;j <i  也可以
            for(j = 1;j <i;j++){  //第一次只要9趟 每次都比i少1趟
                if(arr[j]>arr[j+1]){
                    temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }

        }

    }

    void prin(){
        for (int i = 1 ; i < arr.length ; i++){
            System.out.println(arr[i]);
        }
        
    }


}

猜你喜欢

转载自www.cnblogs.com/cnng/p/12329561.html