汇编语言中的排序方法
- 格式:doc
- 大小:3.17 MB
- 文档页数:4
汇编语言中的排序方法
1 冒泡排序
基本算法:
① 予置数组指针和比较次数;
② 比较相邻二元素,若前者低于或等于后者, 则不交换,否则交换;
③ 修改数组指针,若未比较完,则转向②继续比较;
④ 修改扫描次数,若尚未排好,则转向①进行下一次扫描。
冒泡程序过程示例:
汇编语言中的排序方法
2 源程序:
ARRAY DB 80,60,100,50,90,70
N EQU 6
SORT:MOV DX,N-1
PASS: MOV BX,OFFSET ARRAY
MOV CX,DX
XOR AH,AH
COMP: MOV AL,[BX]
CMP AL,[BX+1]
JBE NOEXCH
XCHG AL,[BX+1]
MOV [BX],AL
INC AH
NOEXCH:INC BX
LOOP COMP
CMP AH,0
JE DONE
DEC DX
CMP DX,0
JNE PASS
DONE: …
汇编语言中的排序方法
3 选择排序
基本算法:
① 在排序范围内,找出最小值,与范围内的第一个元素交换;
② 修改排序范围,若排序范围大于1,则转到①继续排序过程,否则排序结束。
汇编语言中的排序方法
4 源程序为:
ARRAY DB 80,60,100,50,90,70
N EQU 6
SORT: MOV SI,0
INIT: MOV BX,SI
MOV AL,ARRAY[BX]
MOV DI,SI
SELECT: INC DI
CMP AL,ARRAY[DI]
JBE NOUPDA
MOV BX,DI
MOV AL,ARRAY[BX]
NOUPDA:CMP DI,N-1
JB SELECT
CMP BX,SI
JE NOEXCH
XCHG AL,ARRAY[SI]
MOV ARRAY[BX],AL
NOEXCH: INC SI
CMP SI,N-1
JB INIT
DONE: ……