java冒泡排序算法及优化

冒泡排序 循环次数的公式: n(n-1) / 2

    public static void main(String[] args){
        int[] arry = new int[]{1,2,3,4,5,7,6};
        int temp;
        int k=0;// 表示循环次数
        for(int i=0;i<arry.length;i++){
            boolean flag=false;
            for(int j=0;j<arry.length-1-i;j++){
                if(arry[j]>arry[j+1]){
                    temp= arry[j];
                    arry[j]= arry[j+1];
                    arry[j+1]=temp;
                    flag=true;
                }
                if(!flag){
                    continue;
           
                }
                k++;
        }
        }
        
        System.out.println(k);
        System.out.println(Arrays.toString(arry));
    }
 

根据公式这个arry 正常需要 21次排序。使用boolean 类型的标识,如果arry[j] 不大于 arry[j+1],则跳过这次循环,进行下一次。最后这个数组 只需要一次遍历就可以了。

猜你喜欢

转载自blog.csdn.net/wlj_wangjun/article/details/84558395