汇编语言中的排序方法

  • 格式: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: ……