java

冒泡排序

rzk · 8月8日 · 2020年本文共511个字 · 预计阅读2分钟99次已读
public class bubbleSort {
    public static void main(String[] args) {
        int[] a = {9,3,2,9,4,8};
        int count = 0;
        for(int j=0;j<a.length-1;j++) {
            boolean flag = fal睿共享se;
             for(int i=0;i<a.length-1-j;i++)睿共享 {
                 if(a[i]>a[i+1]) {
                     int temp = a[i];
                     a[i]=a[i+1];
                     a[i+1]=temp;
                     flag = true;
                 }
                 if(flag == false) {
                     break;
                 }
睿共享                 count++;
          睿共享   }  
        } System.out.println(count+"次");
        for(int i=0;i<a.length;i++) {
            System.out.println(a[i]);
        }   
    }
}

优化可以在内循环加入-j(j是外循环 -j是为了睿共享每次遍历都会得到最大的数,把-j写进去,可以减去下一次循环,可以不用加进去)
优化加入 boolean flag=true;减少没有意义的比较 把flag=false加入判断里面 在外循环加入 如果flag=true的话 就表示判断里面没有进行比较,也就是说里面的值已经排好了,无需在进行比较

0 条回应