yan061

导航

java冒泡排序

思路一:第一层循环先确定总共要循环的次数, 由于每次只能得到一个最大的或者最小的,所以外循环的次数就是 长度-1。第二层循环是得到这个最小值所需要的比较次数,比如1,2,3,4只需要两两比较三次,所以是长度-i-1.

    public static void maopao(int[] li){
        // 冒泡排序
        // 先排出大的
        for (int i = 0; i < li.length-1; i++) {
            for (int j = 0; j < li.length-1-i; j++) {
                if (li[j]>li[j+1]){
                    int temp = li[j];
                    li[j] = li[j+1];
                    li[j+1] = temp;
                }
            }
        }
        // 先排出小的
        for (int i = 0; i < li.length-1; i++) {
            for (int j = i+1; j < li.length; j++) {
                if (li[i]>li[j]){
                    int temp = li[i];
                    li[i] = li[j];
                    li[j]=temp;
                }
            }
        }

        for (int i = 0; i < li.length; i++) {
            System.out.print(li[i]+"\t");
        }


    }

    public static void main(String[] args) {
        int[] li = {56,21,78,-1,-78,0,88,88,3,2,66};
        maopao(li);
    }

  输出为-78 -1 0 2 3 21 56 66 78 88 88

 

posted on 2022-01-06 16:13  yan061  阅读(23)  评论(0编辑  收藏  举报