循环程序设计冒泡排序.doc

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

昆明理工大学信息工程与自动化学院学生实验报告 ( 2010 —2011 学年 第 一学期 ) 课程名称: 开课实验室: 2010年12月2日 年级、专业、班 学号 成绩 ? 实验项目名称 循环程序设计:冒泡排序 指导教师 教师评语 ? 教师签名: 年 月 日 实验目的 掌握循环程序设计方法 输入并汇编冒泡排序程序 观察并记录运行结果 循环程序设计方法 循环程序结构 循环程序可以有两种结构形式:一种是DO_WHILE结构形式;另一种是DO_UNIT结构形式。 循环结构图 基本循环结构 DO_ WHILE结构是先判断后执行的结构,它把对循环控制条件的判断放在循环的入口,先判断控制条件,若满足控制条件(例循环次数不为0)就执行循环体,否则退出循环。 DO_ UNTIL结构则是先执行后判断的结构,它先执行循环体然后再判断控制条件,若满足控制条件则继续执行循环体,否则退出循环。这两种结构一般可以随习惯使用,但在初始循环次数可能为0的情况下则必须使用DO_WHILE结构。 循环设计 循环初始化。它包括设置循环次数的初始值、地址指针 的初始设置等。 循环体。这是循环工作的主体,包括要重复执行的操作,以及循环的修改部分。修改部分包括地址指针的修改、循环控制条件的修改等。 循环控制部分。它是控制循环的关键,判断循环条件满足与否。 输入并汇编冒泡排序程序 冒泡排序算法描述 排序的方法很多,本例使用起泡排序法实现。 其算法是:从第一个数开始依次对相邻两个数进行比较,如次序正确则不做任何操作,否则两数互换位置。在进行了第一遍的(CT-1)次比较后,最小的数已放到了最后。因为已有一个数放到了正确位置,所以第二遍只需比较(CT-1)个数,即只需要比较(CT-2)次……共循环(CT-1)遍,全部数据即排好序。 简而言之:每个循环找一个最小数放到最后,下一循环从剩余数中再找最小数……共循环(CT-1)遍。 冒泡排序流程图 冒泡排序源程序 STACKSG SEGMENT STACK S DW 64 DUP(ST) STACKSG ENDS DATA SEGMENT ARY DW 5,7,1,4,3,6,9,8,2 ;数组,流程图中为A CT EQU ($-ARY)/2 ;元素个数 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKSG MAIN PROC FAR MOV AX,DATA MOV DS,AX MOV DI,CT-1 ;初始化外循环次数 LOP1: MOV CX,DI ;置内循环次数 MOV BX,0 ;置地址指针 LOP2: MOV AX,ARY[BX] CMP AX,ARY[BX+2] ;两数比较 JGE CONT ;次序正确转 ;次序不正确互换位置 XCHG AX,ARY[BX+2] MOV ARY[BX],AX CONT: ADD BX,2 ;修改地址指针 LOOP LOP2 ;内循环控制 DEC DI ;修改外循环次数 JNZ LOP1 ;外循环控制 MOV AX,4C00H INT 21H MAIN ENDP CODE ENDS END MAIN 实验记录和运行结果 用MAS

文档评论(0)

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

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

1亿VIP精品文档

相关文档