冒泡排序算法

public static int[] solution(int[] arr) {
        if (arr == null || arr.length == 0) {
            return null;
        }

        int temp;
        boolean flag;
        for (int i = 0; i < arr.length; i++) {

            flag = false;
            for (int j = arr.length - 1; j > i; j--) {
                //每次进行两两比较,如果后面的元素小于前面的元素则互换位置
                if (arr[j] < arr[j - 1]) {
                    temp = arr[j];
                    arr[j] = arr[j - 1];
                    arr[j - 1] = temp;
                    flag = true;
                }
            }

            //如果某一轮下来元素没有互换位置,那么说明排序已经完成
            if (!flag) {
                break;
            }
        }
        return arr;
    }
posted @ 2018-11-21 16:49  静致远  阅读(103)  评论(0编辑  收藏  举报