冒泡排序算法
一 概述
冒泡排序是一种简单的交换排序算法,其核心思想是通过相邻元素比较和交换将最大元素逐步移动到数组末尾。
二 算法步骤
下面以数组 [6,4,7,8,2]为例,详细说明其实现过程。
1 第一轮遍历
比较 6 和 4→ 交换 → [4,6,7,8,2]
比较 6和 7 → 不交换
比较 7 和 8→ 不交换
比较 8 和 2→ 交换 → [4,6,7,2,8]
结果:最大值 8 到达末尾
2 第二轮遍历
比较 4和 6 → 不交换
比较 6和 7→ 不交换
比较 7和 2 → 交换 → [4,6,2,7,8]
结果:次大值 7归位
3 第三轮遍历
比较 4 和 6→ 不交换
比较 6和 2→ 交换 → [4,2,6,7,8]
结果:6归位
4 第四轮遍历
比较 4和 2→ 交换 → [2,4,6,7,8]
结果:完全有序
三 C++ 实现
下面是C++ 实现的带优化版本,如果本轮没有交换说明数组已经排序好。
#include <iostream>
using namespace std;
void bubbleSort(int arr[], int n) {
bool swapped;