当前位置: 首页 > news >正文

【C语言】【数据结构】冒泡排序及优化

一、算法思想

        冒泡排序是一种简单的排序算法。一次从前往后地走访待排序的元素序列被称为一趟,每一趟都会把相邻的两个元素的错误顺序交换,将当前趟次中最大或者最小的元素像“冒泡泡”一样冒到最后面,反复地走访元素序列,直到所有元素都排好序。

二、举例

        待排序列:3,1,7,5,8,9,0,2,4,6

        排序规则:从小到大

        第一趟:

        3 比 1 大,交换。   

        3 比 7 小,不动。

        第一趟完成,最大数 9 被冒到了最后面。

        第二趟:

        第二趟完成,最大数 8 被冒到了倒数第二个。

        。。。。。。

        此次类推,直到所有元素排序完成。

三、代码及运行结果

四、算法优化

        如果待排序列为:1,0,2,3,4,5,6,7,8,9

        在第一躺结束后,所有元素就已经排序好,后面还有很多趟是没有必要执行的,所以我们需要优化冒泡排序算法。每趟设置一个标记 flag 初始为0,表示此趟未交换顺序;一旦发生相邻元素的交换,就将 flag 置 1 。如果一趟结束后,没有发生相邻元素的交换,就表明序列已经排序完毕,结束排序。

        代码及运行结果:

http://www.lryc.cn/news/412994.html

相关文章:

  • 3种 Ajax 方式:原生、jQuery、axios
  • Node.js 根据表结构动态生成目标代码
  • 渗透测试实战—云渗透(AK/SK泄露)
  • 【机器学习】机器学习与医疗健康在疾病预测中的融合应用与性能优化新探索
  • MySQL(8.0)数据库安装和初始化以及管理
  • C# Web控件与数据感应之 TreeView 类
  • java使用责任链模式进行优化代码
  • 【人工智能】边缘计算与 AI:实时智能的未来
  • Day12--Servlet实现前后端交互(案例:学生信息管理系统登录页面)
  • Android 安装应用-准备阶段
  • 【JKI SMO】框架讲解(九)
  • Linux通过Docker安装Microsoft Office+RDP远程控制
  • 利用Qt实现调用文字大模型的API,文心一言、通义千问、豆包、GPT、Gemini、Claude。
  • 借助医疗保健专用的 LLM提高诊断支持与准确性
  • 微前端(qiankun)
  • 速通c++(周二)
  • 拓扑未来物联网平台简介
  • 软件测试经理工作日常随记【7】-接口+UI自动化(多端集成测试)
  • 软考:软件设计师 — 9.数据流图
  • 收银系统源码-门店折扣活动应该怎么做
  • Python数值计算(12)——线性插值
  • TypeScript(switch判断)
  • 血细胞自动检测与分类系统:深度学习与UI界面的结合
  • 鸿蒙Flex布局
  • 开发自己的 Web 框架
  • 用于自动驾驶的基于立体视觉的语义 3D 对象和自我运动跟踪
  • Spring@Autowired注解
  • 32.x86游戏实战-使用物品call
  • Prometheus+Alertmanager+邮件告警
  • upload-labs漏洞靶场~文件上传漏洞