冒泡法排序原理.ppt

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
冒泡法排序原理

冒泡法排序 冒泡法原理 分析: 假设有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]中. 冒泡法原理 冒泡法排序 现假设有8个随机数已经在数组中,开始排序 初始状态: 数组a a[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] 冒泡法排序 同样第四趟结果为: 冒泡法排序流程图 程序整体流程: 冒泡法排序流程图 冒泡法排序流程图 冒泡法程序 main( ) { int i,j,a[8],temp,swap; clrscr( ); for(i=0;i8;i++) scanf(%d,a[i]); 冒泡法 swap 变量的作用 如果在某趟冒泡过程中没有交换相邻的值,则说明排序已完成,可以提前结束处理. 比如:为原始数列:8、15、27、96、32、65、78、79 这个序列用冒泡法排序,一趟之后就得到升序结果,而之后的六趟都可以不要进行。 所以,swap变量就是用来标识如果某趟排序之后已经得到最终结果,则多余的次数就无须进行。 冒泡法与选择法的比较 用选择排序法对键盘输入的N个数从小到大进行排序. 冒泡法与选择法的比较 a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] 数组a 总 结 本次课主要内容: 1.冒泡法基本思想,通过n-1趟排序把n个待排序数 大的元素象石头一样往下沉(放在最后),小的元素 象气泡一样往上浮。 2.冒泡法的流程图 3.冒泡法程序 4.冒泡法中swap变量的作用 5.简述了选择法排序,要求回去预习选择法排序。 经典算法介绍: 排序问题是程序设计中的典型问题之一,它有很广泛的应用,比如给你一组学生成绩,要你输出前2 0 名的成绩。这时你就要用到排序。再比如要问你中国的GDP排世界第几,你要先把各国GDP排个序,才知道中国在第几。 所谓排序就是将数组中的各元素的值按从小到大的顺序或按从大到小的顺序重新排列。 排序过程一般都要进行元素值的比较和元素值的交换。 看图示 例1:用冒泡排序法对8个整数{6,8,5,4,6,9,3,2}进行从小到大排序. 第二:再对a[0]到a[N-2]的范围内再进行一趟冒泡,又将该范围内的最大值换到了a[N-2]中. 看图示二 Swap变量作用 看图示三 第四:如果在某趟冒泡过程中没有交换相邻的值,则说明排序已完成,可以提前结束处理. 第三:依次进行下去,最多只要进行N-1趟冒泡,就可完成排序. 看流程 2 3 9 6 4 5 8 6 第一趟排序: 两两相邻比较: 总结 回到思路一 8 5 8 4 9 3 8 6 9 2 第一趟最后结果: 9 9 2 3 8 6 4 5 6 9 8 2 3 6 6 4 5 9 8 6 2 3 6 5 4 同样对待排序元素两两比较后结果为: 这是第三趟冒泡的待排序元素 接着第三趟冒泡排序结果为: 回到思路二 9 8 6 6 5 4 3 2 9 8 6 6 2 3 5 4 9 8 6 6 5 4 2 3 9 8 6 6 5 2 3 4 第六趟结果为: 第七趟结果(最终)为: 第五趟结果为: 回到思路二 看流程 开始 结束 输入数据 输出数据 冒泡排序 细化输入数据流程: i = 0 i8 MOVX A,@DPTR i ++ N Y 细化输出数据流程: i = 0 i8 MOVX @DPTR,A i ++ N Y

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档