news 2026/5/23 9:23:13

冒泡排序算法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
冒泡排序算法

文章目录

  • 原理
    • 算法步骤
  • 实现
    • 优化
  • 应用场景

原理


算法步骤

  • 原则:邻居俩俩比,大的往后换
    • 要进行n-1回合
    • 每【回合】 进行 (n-回合)[次]比较

  • 例:源数据 [3, 7, 2, 1],n为4(元素数量),加粗代表本回合本次比较过后的结果。

  • 【第一回合】[n-1次比较]
    • [3, 7, 2, 1]
    • [3,2, 7, 1]
    • [3, 2,1, 7]
  • 【第二回合】[n-2次比较]
    • [2, 3, 1, 7]
    • [2,1, 3, 7]
  • 【第三回合】[n-3次比较]
    • [1, 2, 3, 7]
  • 比较&&交换完毕!最终升序结果为:[1, 2, 3, 7]

实现

#include<iostream>usingnamespacestd;voidbubbleSort(intarr[],intn){// 外层:n-1回合(每回合需要将一个最大的放到正确的位置for(inti=0;i<n-1;i++){//内层:n-1-i次(减i是因为随着回合的增加,排好的数量也在逐渐递增,排好的不用再排所以减去)for(intj=0;j<n-1-i;j++){if(arr[j]>arr[j+1]){// 前比后大就需要交换inttempPre=arr[j];arr[j]=arr[j+1]arr[j+1]=tempPre;}}}}intmain(){intarr[]={3,7,2,1};intn=sizeof(arr)/sizeof(arr[0]);bubbleSort(arr,n);for(inti=0;i<n;i++){cout<<arr[i]<<" ";}return0;}

优化

voidbubbleSortBetter(intarr[],intn){for(inti=0;i<n-1;i++){boolswapped=false;// 标记这一轮有没有交换for(intj=0;j<n-1-i;j++){if(arr[j]>arr[j+1]){swap(arr[j],arr[j+1]);// C++ 自带交换函数swapped=true;}}if(!swapped)break;// 没交换,已经有序,提前下班}}

应用场景

  • 教学场景
  • 小数据量/小内存(传感器、单片机
  • 数据基本有序了(比如实时接收的数据流,偶尔有一两个错位),冒泡加上“提前结束”的优化后,跑得飞快,几乎扫一遍就完事。
  • 不适合的场景:
    • 数据量上到几千几万 → 太慢,用快速排序
    • 数据范围很小且是整数 → 用计数排序,闪电快
    • 对性能有要求 → 用标准库的 sort(),别自己造轮子
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/23 9:23:12

3PEAK思瑞浦 TP6002-VR MSOP8 运算放大器

特性 供电电压:2.1V至6.0V 低供电电流:每通道80安培 轨到轨输入和输出 带宽:1MHz 斜率:0.7伏/微秒 优异的EMI抑制性能 偏移电压:最大3mV 偏移电压温度漂移:2V/C 低噪声:1kHz时27nV/√Hz 高输出能力:100mA 工作温度范围:-40C至125C

作者头像 李华
网站建设 2026/5/23 9:22:04

制造业供应链优化指南 精益物流落地方法与工具解析

制造业供应链优化离不开物流体系精细化升级&#xff0c;面向工厂运营与供应链从业者&#xff0c;本文拆解精益物流四大核心原则&#xff0c;详解五类落地工具的应用逻辑与实操场景&#xff0c;适配企业流程优化、成本管控、效率提升工作落地。引言&#xff1a;从技术视角看制造…

作者头像 李华
网站建设 2026/5/23 9:17:16

ncmdumpGUI:一键解密网易云音乐NCM文件,让音乐重获自由

ncmdumpGUI&#xff1a;一键解密网易云音乐NCM文件&#xff0c;让音乐重获自由 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换&#xff0c;Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否在网易云音乐下载了心爱的…

作者头像 李华
网站建设 2026/5/23 9:07:37

WinAsar终极指南:3分钟掌握Electron asar文件可视化打包与解压

WinAsar终极指南&#xff1a;3分钟掌握Electron asar文件可视化打包与解压 【免费下载链接】WinAsar Portable and lightweight GUI utility to pack and extract asar( Electron archive ) files, Only 551 KB! 项目地址: https://gitcode.com/gh_mirrors/wi/WinAsar 还…

作者头像 李华