循环程序设计技术和子程序设计.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
循环程序设计技术 4.4 循环程序设计技术 4.4 循环程序设计技术 4.4 循环程序设计技术 4.4 循环程序设计技术 4.4 循环程序设计技术 4.4 循环程序设计技术 4.4 循环程序设计技术 4.5 子程序设计技术 4.5 子程序设计技术 4.5 子程序设计技术 4.5 子程序设计技术 4.5 子程序设计技术 4.5 子程序设计技术 4.5 子程序设计技术 4.5 子程序设计技术 4.5 子程序设计技术 4.5 子程序设计技术 * * 例4.5 在缓冲区DATABUF中保存有一组无符号数据(8位),其数据个数存放在DATABUF的第1、2个字节中,要求编写程序将数据按递增顺序排列。 解:这里采用双重循环实现数据的排序,这可使程序变得简单。要对N个数据进行从小到大排序时,可以采用“冒泡法”:从后往前,每两个数据进行比较,当前者大于后者时,交换两者的次序;否则不变,这样,经过N-1次比较,可以将最小值交换到第一个单元(最轻的气泡最先冒出水面)。接着对后N-1个数据,重复上述过程,使次小值交换到第二个单元;依此类推,共进行N-1次比较过程,可以完成数据的排序操作。 设从地址ARRAY开始的内存缓冲区中有一个字数组, 要使该数据表中的N个元素按照从大到小的次序排列,用冒泡算法显示的过程叙述如下: 从第一个数开始依次进行相邻两个数的比较, 即第一个数与第二个数比较, 第二个数与第三个数比较 ……,比较时若两个数的次序符合排序要求,则不做任何操作;若次序不对,就交换这两个数的位置。经过这样一遍全表扫描比较后,最大的数放到了表中第N个元素的位置上。在第一遍扫描中进行N-1次比较。用同样的方法再进行第二次扫描, 这时只需考虑N-1个数之间的N-2次比较,扫描完毕,最大的数放到了表中第N-1个元素的位置上…… 依此类推,在进行了N-1遍的扫描比较后将完成排序。 下面是对有7个元素的次序表进行冒泡排序的过程。  表的初始状态: [ 43 36 65 95 81 12 25 ] 第一遍扫描比较之后: [ 36 43 65 81 12 25 ]95 第二遍扫描比较之后: [ 36 43 65 12 25 ]81 95  第三遍扫描比较之后: [ 36 43 12 25 ]65 81 95 第四遍扫描比较之后: [ 36 12 25 ]43 65 81 95 第五遍扫描比较之后: [ 12 25 ]36 43 65 81 95 第六遍扫描比较之后: 12 25 36 43 65 81 95 冒泡法最大可能的扫描遍数为N-1。 但是, 往往有的数据表在第1遍(1<N-1)扫描后可能已经成序。为了避免后面不必要的扫描比较,可在程序中引入一个交换标志若在某一遍扫描比较中,一次交换也未发生,则表示数据已按序排列,在这遍扫描结束时,就停止程序循环,结束排序过程。 由于每次比较操作都在相邻两个单元进行,因此只需要一个指针。汇编语言程序如下: N=100 ;设有100个数据 STACK SEGMENT STACK ‘STACK’ DW 100H DUP(?) TOP LABEL WORD STACK ENDS DATA SEGMENT DATABUF DW N DB N DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX MOV ES,AX MOV AX,STACK MOV SS,AX LEA SP,TOP ;为了能够进行排序,DATABUF 中必须已经保存数据, ;因此我们产生一组随机数据 MOV CX,DATABUF LEA SI,DATABUF+2 MOV BL,23 MOV AL,11 LP: MOV [SI],AL INC SI ADD AL,BL LOOP LP ; 下面给出数据排序程序 MOV CX

文档评论(0)

文档精品 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:6203200221000001

1亿VIP精品文档

相关文档