- 1、本文档共42页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 第7章 8086/8088循环程序设计 * 冒泡法 “冒泡法”是一种排序算法,不是最优的算法,但它易于理解和实现 冒泡法从第一个元素开始,依次对相邻的两个元素进行比较,使前一个元素不大于后一个元素;将所有元素比较完之后,最大的元素排到了最后;然后,除掉最后一个元素之外的元素依上述方法再进行比较,得到次大的元素排在后面;如此重复,直至完成就实现元素从小到大的排序。n个数需要n-1遍比较,第一遍比较出一个最大(或最小)数,第二遍对剩下的数进行比较,得到一个次最大(或次最小)数 ,第n-1遍比较出最后两个数的大小顺序,至此整个数组全部排好序。每一遍比较需要比较的次数为要比较数减一。如n=5,第一遍比较次数为4(内循环),第二遍比较次数为3 (内循环) ,第三遍比较次数为2 (内循环) ,第四遍比较次数为1 (内循环) 。 * 第7章 8086/8088循环程序设计 * 程序实现: DATA SEGMENT COUNT DW 10 ADDR DW 25H,36H,89H, -96H,45H,52H,30H,78H,12H,99H DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX, DATA MOV DS, AX * 第7章 8086/8088循环程序设计 * mov cx, count ;元素个数 dec cx ;得到扫描趟数和初趟比较次数 loop1: mov di, cx;保存外循环次数 mov bx, 0 ;从第一个元素开始比较 loop2: mov ax, Addr[bx] ;相邻两数 cmp ax, Addr[bx+2] ; 比较 jle continue ;前者小于等于后者(符合升序)则继续,否则(不符合升序)要交换 xchg ax, Addr[bx+2] mov Addr[bx], ax ;上面这两句实现交换位置 continue: add bx, 2 ;进行下一组相邻数比较 loop loop2 ;此时的cx是某趟扫描时的比较次数(内循环) mov cx, di loop loop1 ;此时的cx是扫描趟数(外循环) * 第7章 8086/8088循环程序设计 * Mov ah,4ch Int 21h Code ends end start 调试bubbleA.asm * 第7章 8086/8088循环程序设计 * 7.2 循环程序设计 例7.4在标准冒泡排序的基础上做了改进: 为提高效率,可以采用另一种结束外循环的方法:设立一个交换标志,每次进入内循环之前使其置1;在内循环中每做一次数据交换操作就将该标志位置0。在每次内循环结束后,可以测试交换标志,如为0,则再一次进入外循环;如该位为1,则说明上一遍比较没有引起数据交换,数组已经整序完毕,这样就可以结束外循环。 本例流程图见图7.6 * 第7章 8086/8088循环程序设计 * 7.2 循环程序设计 程序实现2: DATA SEGMENT COUNT DW 10 ADDR DW 25H,36H,89H,-96H,45H,52H,30H,78H,12H,99H DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX, DATA MOV DS, AX MOV CX, COUNT;取得元素个数 * 第7章 8086/8088循环程序设计 * 7.2 循环程序设计 LAB1: MOV BX,1;进入内循环之前交换标志置1 DEC CX JZ EXIT ;外循环计数控制的出口 PUSH CX ;因cx同时充当内循环计数值,故序保护原来充当外循环计数值的cx LEA DI,
您可能关注的文档
最近下载
- 咨询发布—2025年中国产教融合行业产业链全景分析及发展趋势预测.docx
- 光合作用(优秀公开课件)(共63张PPT).pptx VIP
- 人教A版高中数学必修第二册同步教材习题答案.doc VIP
- 金工深度研究:基于趋势和拐点的市值因子择时模型.docx VIP
- Iphone7如何下载旧版微信.pdf VIP
- 07S906 给水排水构筑物设计选用图 经典图集.pdf
- GB50654-2011 有色金属工业安装工程质量验收统一标准.pdf VIP
- 迅达3300AP电气原理图(中文精简版).pdf VIP
- 八大作业安全管理制度.pdf VIP
- 2024—2025学年江苏省宿迁市沭阳县怀文中学八年级上学期12月月考物理试卷.doc VIP
文档评论(0)