写点什么

数据结构与算法 - 排序 1. 冒泡排序

用户头像
小马哥
关注
发布于: 2021 年 02 月 09 日
数据结构与算法 - 排序1.冒泡排序

每天写点数据结构与算法, 今天的算法是排序, 第一种也是最简单的排序算法: 冒泡排序.直接上代码, 思路看注释.加上了对冒泡排序的优化.

public class BubbleSort {    /**     * 执行冒泡排序     * @param arrays 待排序数组     * @param order  正序or逆序     * @return     */    public static int[] sort(int[] arrays, boolean order) {        // 1, 特殊情况, 数组的长度小于等于1, 没有必要排序, 直接返回        if (arrays.length <= 1) {            return arrays;        }        // 2, 根据order确定是正序, 还是倒序拍你        int flag = order ? 1 : -1;        // 3, 数据交换标志位        boolean change = false;        int temp = 0;        for (int i = 0; i < arrays.length; i++) {            for (int j = 0; j < arrays.length - i - 1; j++) {                if (flag * (arrays[j] - arrays[j + 1]) > 0) {                    temp = arrays[j];                    arrays[j] = arrays[j + 1];                    arrays[j + 1] = temp;                    change = true;                }            }            // 优化, 如果没有数据交换, 则提前退出            if (!change) {                break;            }        }        return arrays;    }    /**     * 执行冒泡排序 重载方法 默认执行正序排序     * @param arrays 待排序数组     * @return     */    public static int[] sort(int[] arrays) {        return sort(arrays, true);    }}
复制代码


空间复杂度: O(1), 因为是就地排序;

时间复杂度: O(n^2) <-- 平均时间复杂度


发布于: 2021 年 02 月 09 日阅读数: 23
用户头像

小马哥

关注

自强不息,厚德载物 2018.12.22 加入

像一棵竹子那样, 不断的扎根积累, 活出节节高的人生!

评论

发布
暂无评论
数据结构与算法 - 排序1.冒泡排序