思路:
//1.从数组的第一个元素开始,比较相邻两个元素的大小
//2.如果当前元素大于或小于后面的元素,则交换位置
//3.继续比较,直到数组的最后一个元素
//4.再进行多次遍历数组,直到数组完成排序
示例:
6 9 1 3 4 8
第一轮排序
6 1 9 3 4 8
6 1 3 9 4 8
6 1 3 4 9 8
6 1 3 4 8 9
第二轮排序
1 6 3 4 8 9
1 3 6 4 8 9
1 3 4 6 8 9
代码:
#include <iostream>
using namespace std;
void bubbleSort(int arr[], int n) {// 基本情况:当数组大小为1或0时直接返回if (n <= 1) {return;}// 一次遍历数组,将较大的元素交换到末尾for (int i = 0; i < n - 1; i++) {if (arr[i] > arr[i + 1]) {swap(arr[i], arr[i + 1]);}}// 递归地对剩余的元素进行排序bubbleSort(arr, n - 1);
}int main() {int arr[] = {64, 34, 25, 12, 22, 11, 90};int n = sizeof(arr) / sizeof(arr[0]);bubbleSort(arr, n);cout << "排序后的数组:";for (int i = 0; i < n; i++) {cout << arr[i] << " ";}return 0;
}