




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
冒泡法排序 经典算法介绍 排序问题是程序设计中的典型问题之一 它有很广泛的应用 比如给你一组学生成绩 要你输出前20名的成绩 这时你就要用到排序 再比如要问你中国的GDP排世界第几 你要先把各国GDP排个序 才知道中国在第几 所谓排序就是将数组中的各元素的值按从小到大的顺序或按从大到小的顺序重新排列 排序过程一般都要进行元素值的比较和元素值的交换 冒泡法排序 冒泡法原理 分析 假设有N个数据放在数组a中 现要把这N个数从小到大排序 冒泡排序法的基本思想是 第一 在a 0 到a N 1 的范围内 依次比较两个相邻元素的值 若a J a J 1 则交换a J 与a J 1 J的值取0 1 2 N 2 经过这样一趟冒泡 就把这N个数中最大的数放到a N 1 中 看图示 例1 用冒泡排序法对8个整数 6 8 5 4 6 9 3 2 进行从小到大排序 冒泡法原理 第二 再对a 0 到a N 2 的范围内再进行一趟冒泡 又将该范围内的最大值换到了a N 2 中 看图示二 Swap变量作用 看图示三 第四 如果在某趟冒泡过程中没有交换相邻的值 则说明排序已完成 可以提前结束处理 第三 依次进行下去 最多只要进行N 1趟冒泡 就可完成排序 看流程 冒泡法排序 现假设有8个随机数已经在数组中 开始排序初始状态 数组aa 0 a 1 a 2 a 3 a 4 a 5 a 6 a 7 第一趟排序 两两相邻比较 总结 回到思路一 第二趟冒泡排序开始 此时的待排序元素a 0 a 1 a 2 a 3 a 4 a 5 a 6 a 7 冒泡法排序 同样对待排序元素两两比较后结果为 接着第三趟冒泡排序结果为 回到思路二 冒泡法排序 同样第四趟结果为 第六趟结果为 第七趟结果 最终 为 第五趟结果为 回到思路二 看流程 冒泡法排序流程图 程序整体流程 开始 结束 输入数据 输出数据 冒泡排序 细化输入数据流程 i 0 i 8 MOVXA DPTR i 细化输出数据流程 执行第i趟冒泡排序 冒泡法排序流程图 i i 8 1 i 0 写程序 j 0 j 8 i 1 j 比较相邻两元素的值并交换 a j a j 1 交换a j 与a j 1 的值 冒泡法排序流程图 i i 8 1 i 0 Y N j 8 i 1 N Y j swap 0j 0 加入Swap变量的流程图 程序 swap break Y 冒泡法程序 main inti j a 8 temp swap clrscr for i 0 i 8 i scanf d for i 0 i 8 i printf d a i printf n 注 对n个元素冒泡排序第i趟排序的待排序元素是a 0 到a n i 1 这里的i表示数组的下标 swap 1 if swap break swap 0 流程图 if a j a j 1 temp a j a j a j 1 a j 1 temp for j 0 j 8 i 1 j 回到第四点 上一页 比较 for i 0 i 8 1 i 冒泡法 swap变量的作用如果在某趟冒泡过程中没有交换相邻的值 则说明排序已完成 可以提前结束处理 比如 为原始数列 8 15 27 96 32 65 78 79这个序列用冒泡法排序 一趟之后就得到升序结果 而之后的六趟都可以不要进行 所以 swap变量就是用来标识如果某趟排序之后已经得到最终结果 则多余的次数就无须进行 回到流程图 冒泡法与选择法的比较 用选择排序法对键盘输入的N个数从小到大进行排序 基本思想 假设有N个数据放在数组a中 现要把这N个数从小到大排序 首先 在a 0 到a N 1 的范围内 选出最小值与a 0 交换 然后 在a 1 到a N 1 范围内 选出最小值与a 1 交换 接着是a 2 到a N 1 的范围 这样依次进行下去 进行N 1次选择后就可完成排序 即第i趟排序的待排序范围是a i a N 1 的元素 要从中选出值最小的元素并与a i 交换位置 冒泡法与选择法的比较 a 0 a 1 a 2 a 3 a 4 a 5 a 6 a 7 数组a K K i K K K 2 6 每趟选择排序是找到待排序序列中最小的元素 把它交换到待排序的最前的位置 所以 一趟只有一次交换 回到冒泡图示 K 5 6 8 总结 本次课主要内容 1 冒泡法基本思想 通过n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- project考试试题及答案
- 电缆厂检验知识培训课件
- 电煤知识培训内容摘要模板课件
- 本科线性代数考试题目及答案
- 高热惊厥科普课件
- Nicomol-Standard-生命科学试剂-MCE
- Acedapsone-d8-生命科学试剂-MCE
- MEDI-8852-生命科学试剂-MCE
- 保险学第七版考试题库及答案
- 专升本考试题目及答案
- 2025至2030中国PC薄膜行业调研及市场前景预测评估报告
- 2025-2026学年道德与法治八年级上册教学计划
- 深海沟生物地理格局-洞察及研究
- 《丙型肝炎防治指南》
- 2025年湖北省工程专业中级职务水平能力测试(电子信息)经典试题及答案
- 技改管理制度
- 个人挂靠劳务公司协议书
- 2025年中国电信考试真题及答案
- 医院实验室生物安全手册
- 2025年广西公需真题卷及答案
- 重晶石项目可行性研究报告
评论
0/150
提交评论