冒泡排序
入门最直观的排序算法,适合理解「比较-交换」的基本模式。
冒泡排序的名字来自一个生动的比喻:较大的元素像气泡一样,在每一轮遍历中慢慢「浮」到数组的末尾。
想象一排身高不同的人站成一列。你从左到右依次比较相邻的两个人,如果左边的人更高,就让他们交换位置。一轮下来,最高的人就到了最右边。
重复这个过程,每轮都能把当前最高的人送到正确位置。当某一轮没有任何交换发生时,说明所有人已经排好序了,可以提前结束。
// 自定义输入
速度 中
待机 ⌨1void bubbleSort(int arr[], int n) {
2 for (int i = 0; i < n - 1; i++) {
3 bool swapped = false;
4 for (int j = 0; j < n - 1 - i; j++) {
5 if (arr[j] > arr[j + 1]) {
6 int temp = arr[j];
7 arr[j] = arr[j + 1];
8 arr[j + 1] = temp;
9 swapped = true;
10 }
11 }
12 if (!swapped) {
13 break;
14 }
15 }
16}
复杂度分析
时间 O(n²)
空间 O(1)
最优 O(n)
最坏 O(n²)