C++冒泡排序简单讲解
此文章我已在洛谷博客发布,不算抄袭
什么是冒泡排序
冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端。
(这段话引用自菜鸟教程)
冒泡排序的基本思想
重复地走访要排序的元素列,依次比较两个相邻的元素,如果他们的顺序错误就把他们交换过来。
走访元素的工作要重复地进行,直到没有相邻元素需要交换时,说明全部元素已经排序完成。
走访的元素———比作是一个“气泡”,“气泡“一步一步向上翻滚,完成排序。
冒泡排序的可视化动画
代码展示
从大到小排序
#inlcude <iostream> using namespace std; int main(){ int a[101]; int n; cin>>n; for(int i = 1;i<=n;i++){ cin>>a[i]; } //每趟排好一个数字,第一趟结束把最大值排好到最后一位 for(int k = 1;k <= n-1;k++){ for(int i=1;i<=n-k;i++){ if(a[i]>a[i+1]){//顺序错误 swap(a[i],a[i+1]); } } } for(int i=1;i<=n;i++){ cout<<a[i]<<" "; } }
从小到大排序
#inlcude <iostream> using namespace std; int main(){ int a[101]; int n,flag; cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } //一共n-1趟 for(int k=1;k<=n-1;k++) { //每趟排好一个数字,第一趟结束把最大值排好到最后一位 flag=0; for(int i=1;i<=n-k;i++){ if(a[i]>a[i+1]){//顺序错误 swap(a[i],a[i+1]); flag=1; } } if(flag==0){ //这趟排序中没有出现交换 break;//说明已经排好序了,break终止循环 } } for(int i=1;i<=n;i++){ cout<<a[i]<<" "; } return 0; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)