冒泡排序,升序和降序

2019-03-19  本文已影响0人  信号传D

利用冒泡排序,对以下数组进行升序和降序 {1,5,12,36,55,78,98}

private static void fun3() {
        int[] a = {1,12,5,36, 55, 78, 98,88};                    //前半部分是升序排列
        for (int i = 0; i < (a.length-1)/2; i++) {            //外层循环角标a[0]—a.length-1
            for (int j =i; j < (a.length-i-1)/2; j++) {        //内层循环数组中的每个元素
                if(a[j+1]<a[j]){
                    int t=a[j+1];         //交换位置
                    a[j+1]=a[j];
                    a[j]=t;
                }
            }
            }
        for (int i = (a.length-1)/2; i < a.length; i++) {          //后半部分是降序排列
            for (int j =i; j < a.length-1; j++) {
                if(a[j+1]>a[j]){
                    int t=a[j+1];
                    a[j+1]=a[j];
                    a[j]=t;
                }
            }
        }
        for(int b:a){
                System.out.print(b+" ");
        }
    }

注意要点:
1、循环上下限要区分好,在进行一半升序一半降序时,设定上限应该为数组的一半
2、交换元素时引用第三方变量时,交换方法是斜对角。

上一篇 下一篇

猜你喜欢

热点阅读