冒泡排序C语言版
冒泡排序(Bubble Sort)
🔍 核心思想:
通过多次遍历数组,比较相邻两个元素,如果顺序错误就交换它们。
每轮遍历会把当前未排序部分的最大值“冒”到最后。
🎮 生活比喻:像水中的气泡,大的泡泡会慢慢浮出水面。
⏱ 时间复杂度:
情况 时间复杂度
最坏情况 O(n²)
最好情况(已有序) O(n)
平均情况 O(n²)
🧠 稳定性:✅ 稳定排序
💻 实现代码(C语言):
void BubbleSort(SorList *L) {int flag;for (int i = 1; i < L->length; i++) {flag = 0;for (int j = 1; j <= L->length - i; j++) {if (L->data[j] > L->data[j + 1]) {// 交换相邻元素keyType temp = L->data[j];L->data[j] = L->data[j + 1];L->data[j + 1] = temp;flag = 1;}}if (!flag) break; // 提前结束排序}
}