冒泡排序(Bubble Sort)是一种简单的排序算法。
其原理如下:
每次比较相邻的两个元素,如果顺序不对则进行交换,并一直重复这样的比较和交换操作,直到没有要交换的数据元素为止。
具体来说,在每一轮遍历中,最大的元素会像气泡一样 “浮” 到数组的末尾。
例如,对数组 [5, 1, 4, 2, 8]
进行冒泡排序:
第一轮:
- 比较
5
和1
,交换位置得到[1, 5, 4, 2, 8]
- 比较
5
和4
,交换位置得到[1, 4, 5, 2, 8]
- 比较
5
和2
,交换位置得到[1, 4, 2, 5, 8]
- 比较
5
和8
,不交换
第二轮:
- 比较
1
和4
,不交换 - 比较
4
和2
,交换位置得到[1, 2, 4, 5, 8]
- 比较
4
和5
,不交换
第三轮:
- 比较
1
和2
,不交换 - 比较
2
和4
,不交换
此时数组已排序完成,即 [1, 2, 4, 5, 8]
它的优点是实现简单,容易理解;缺点是比较次数和交换次数较多,效率不高。