- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编程序设计mdash;mdash;排序.pptx汇编程序设计mdash;mdash;排序.pptx
研究型学习交流
汇编程序设计——排序
通信1103王鑫宇
目录
插入法
冒泡法
选择法
将序列划分成有序序列和无序序列,依次从无序序列中选择数据项值,并且将其插入到有序序列的合适位置。
插入法
2
4
1
无序序列:
有序序列:
4
2
插入法演示
INSERT_SORT PROC NEAR
MOV CX,LEN ; 数据个数送CX
DEC CX ; 共插入N-1次
XOR SI,SI ;SI清零
ADD SI,2 ;从第二个数开始插入
REPEAT1: MOV AX, ARRAY[SI ] ;将当前的数据保存在AX寄存器中
MOV DX, SI ;用DX记住数据的当前位置
MOV DI,CX ;用DI记住CX
MOV CX,LEN ;设置REPEAT2的循环次数,为有序序列长度
SUB CX,DI
REPEAT2: CMP AX,ARRAY[SI-2] ;依次比较当前数据和有序序列中数据
JG GOON
MOV BX,ARRAY[SI-2] ;若当前数据较小,则将[SI-2]复制到下一位
MOV ARRAY[SI],BX
SUB SI,2
LOOP REPEAT2
GOON: MOV ARRAY[SI],AX
ADD DX,2
MOV SI,DX ;还原SI和CX
MOV CX,DI
LOOP REPEAT1
INSERT_SORT ENDP
插入法程序
相邻数据依次比较,若前者大,则交换。
比较的顺序从左边开始向右边进行,在进行一趟比较之后,把最值落在下端。
冒泡法
冒泡流程
开始
CX=N-1
CX→SI
BX=0
[BX]=[BX+1]
XCHG
(BX)+1→BX
(CX)-1→CX
CX≠0
SI→CX
(CX)-1→CX
CX≠0
结束
Y
N
Y
Y
N
N
2
4
1
冒泡法演示
MOV CX,NUM ;计数器赋值
DEC CX
LOP1: MOV SI,CX
MOV DI,1 ;交换标志位置1
LEA BX,BUF
LOP2: MOV AL,[BX]
CMP AL,[BX+1]
JAE LOP3 ;若前项大于等于后项,则跳到LOP3
XCHG AL,[BX+1] ;若前项比后项小,则交换
MOV [BX],AL
MOV DI,0 ;一旦产生交换,则DI置0
LOP3: INC BX
LOOP LOP2
CMP DI,0 ;DI为0,则继续排序,否则跳到OK
JNZ OK
MOV CX,SI
LOOP LOP1
OK: MOV BX,0
MOV CX,NUM
冒泡法程序
每一趟排序算法定位到一个最值和无序序列的第一个数交换。
第i趟假设i为最值下标,然后把最值和i+1至最后一个数比较,定位到最值的下标。如果最值下标不为初设值.那么把最值数据项和下标为i的数据项交换。
选择法
2
4
1
选择法演示
CHOOSE_SORT PROC NEAR
XOR SI,SI
MOV CX,LEN
DEC CX ;共比较N-1次
ADD SI,2
REPEAT1: MOV DI,CX ;用DI记住CX
MOV DX,SI ;用DX记住数据的当前位置
MOV AX,ARRAY[SI-2]
REPEAT2: CMP AX,ARRAY[SI]
JL GOON ;若AX小,则比较下一个数
XCHG AX,ARRAY[SI] ;若AX大,则交换,
GOON: ADD SI,2
LOOP REPEAT
文档评论(0)