冒泡排序通过双重循环比较相邻元素并交换,将最大值逐步移到末尾,C++实现简单直观,适合初学者;外层控制轮数,内层进行比较交换,加入swapped标志位可提前结束,优化后最好时间复杂度为O(n)。

冒泡排序是一种简单直观的排序算法,通过重复遍历数组,比较相邻元素并交换位置,将较大元素逐步“冒泡”到数组末尾。在C++中实现冒泡排序非常直接,适合初学者理解排序逻辑。
冒泡排序的核心是双重循环:
使用示例:
#include <iostream> using namespace std;int main() { int arr[] = {64, 34, 25, 12, 22, 11, 90}; int n = sizeof(arr) / sizeof(arr[0]);
cout << "排序前: ";
for (int i = 0; i < n; i++)
cout << arr[i] << " ";
cout << endl;
bubbleSort(arr, n);
cout << "排序后: ";
for (int i = 0; i < n; i++)
cout << arr[i] << " ";
cout << endl;
return 0;}
立即学习“C++免费学习笔记(深入)”;
上面的实现加入了提前退出机制,当某轮遍历未发生任何交换时,立即结束排序,这对部分有序数组能显著提升效率。虽然最坏时间复杂度仍是 O(n²),但最好情况可达到 O(n)。
基本上就这些。冒泡排序实现不复杂但容易忽略细节,比如循环边界和提前退出判断。掌握它有助于理解更复杂排序算法的结构。
c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号