冒泡排序是一种基础排序算法:从头开始,依次比较相邻的两个元素,如果前面的比后面的大就交换,一轮下来最大的数就“冒泡”到最右端。重复若干轮,每轮确定一个最大值,最终整个数组从小到大有序。n 个元素最多需要比较约 n(n-1)/2 次。
每轮比较把当前最大值移到末尾
比较次数约 n(n-1)/2,时间复杂度 O(n²)
· 相邻比较、逆序则交换;每完成一轮,末尾就多一个已排好的数
· 优化版:某一轮一次交换都没发生,说明已有序,可设 flag 提前退出
· 最好情况(已有序)只需 n-1 次比较,复杂度降到 O(n)