610's Algorithm Teaching

冒泡排序

冒泡排序是一种简单的排序算法,它重复地遍历要排序的列表,比较相邻的元素,如果它们的顺序错误就把它们交换过来。这个过程重复进行,直到列表完全有序。

算法原理

冒泡排序的基本思想是:每次遍历列表时,比较相邻的两个元素,如果前一个元素大于后一个元素,就交换它们的位置。这样,较大的元素会像气泡一样逐渐"浮"到列表的末尾。经过多次遍历后,列表就会变得有序。

算法步骤

  • 从第一个元素开始,比较相邻的两个元素
  • 如果前一个元素大于后一个元素,交换它们的位置
  • 继续比较下一对相邻元素,直到到达列表末尾
  • 重复上述过程,每次遍历后,最大的元素会"冒泡"到末尾
  • 重复遍历列表,直到所有元素都排好序

时间复杂度

  • 最坏情况:O(n²) - 当列表是逆序时
  • 平均情况:O(n²)
  • 最好情况:O(n) - 当列表已经有序时(优化版本)

空间复杂度

O(1) - 冒泡排序是原地排序算法,只需要常数级别的额外空间。

稳定性

冒泡排序是稳定的排序算法,相等元素的相对顺序不会改变。

适用场景

  • 数据规模较小的简单排序任务
  • 教学和学习排序算法的基础
  • 几乎已经有序的数据(使用优化版本)

优化建议

  • 添加标志位,如果在某次遍历中没有发生交换,说明列表已经有序,可以提前结束
  • 记录最后一次交换的位置,减少不必要的比较次数
返回排序算法