Developer Toolbox

冒泡排序

一遍又一遍地扫过列表,交换顺序不对的相邻两个值。每扫完一轮,剩下的最大值就到了末尾。

  • Ω(n)
  • Θ(n²)
  • O(n²)
  • O(1)
  • 是
  • 是
  • 比较中
  • 移动中
  • 已就位
0 / 453 步

逆序的对:154(开始时:154) 顺序错误 已理顺

比较次数 交换次数

点击播放,线条会显示排序过程中代价如何增长

点击播放,或一步一步查看。

空格键:播放或暂停。左右方向键:单步移动。Home 和 End 键:跳转。

试试看: 选一个基本排好的列表。只要有一轮没有交换,算法就会提前停止。

工作原理

每次比较相邻的两个值,如果左边的更大就交换。这样每一轮,最大值都会一路移到最右边,就像气泡往上冒。如果某一轮一次交换都没有,列表就已经排好了。

适用场合

列表一长它就很慢,所以实际程序里几乎不用。但它很适合学习,能清楚看到排序最基本的做法:先比较,再交换。只有列表本来就排好时,它才快。