没有合适的资源?快使用搜索试试~ 我知道了~
汇编语言课程设计。 数组查找是日常编程中最常见的一类操作。对小型数组 (1000 个元素或更少 ) 而言,顺序查找(sequential search) 是很容易的,从数组开始的位置顺序检查每一个元素,直到发现匹配的元素为止。对任意 n 个元素的数组,顺序查找平均需要比较 n/2 次。如果查找的是小型数组,则执行时间也很少。但是,如果查找的数组包含一百万个元素就需要相当多的处理时间了。 对半查找 (binary search) 算法用于从大型数组中查找一个数值是非常有效的。但是它有一个重要的前提:数组必须是按升序或降序排列。
资源推荐
资源详情
资源评论
assume cs:code,ds:data,ss:stack
data segment
zifu db 'Binary Search Algorithms!','$' ;输出字符定义
begin db 'the number is :','$'
result db 'the result ID is: ','$'
number db '23','$'
shuju dw 2,18,6,23,54,22,9,60,46,32 ;定义排序的数据
zifushu db 100 dup(0) ;定义一个字符空间
cause db 100 dup(0)
lie db 0ah,'$' ;定义换行
r dw 10 ;定义左右区间及中间值
l dw 0
f dw 0
mid dw 0
data ends
stack segment ;定义栈段
dw 100 dup(0)
stack ends
code segment
start:
mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,1600
mov dx,offset zifu ;输出
mov ah,9
int 21h
data segment
zifu db 'Binary Search Algorithms!','$' ;输出字符定义
begin db 'the number is :','$'
result db 'the result ID is: ','$'
number db '23','$'
shuju dw 2,18,6,23,54,22,9,60,46,32 ;定义排序的数据
zifushu db 100 dup(0) ;定义一个字符空间
cause db 100 dup(0)
lie db 0ah,'$' ;定义换行
r dw 10 ;定义左右区间及中间值
l dw 0
f dw 0
mid dw 0
data ends
stack segment ;定义栈段
dw 100 dup(0)
stack ends
code segment
start:
mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,1600
mov dx,offset zifu ;输出
mov ah,9
int 21h
mov dx,offset lie ;换行
mov ah,9
int 21h
mov bx,offset shuju ;排序算法
mov si,0
mov cx,10
A1:
mov di,0
push cx ;外循环,cx入栈
A2: ;内循环
mov ax,[bx+di]
cmp ax,[bx+di+2] ;比较
ja A3
change:
;xchg ax,[bx+di+2] 交换
push ax
mov ax,[bx+di+2]
pop [bx+di+2]
mov [bx+di],ax
A3:
add di,2
loop A2
pop cx ;外循环
add si,2
loop A1
mov si,0 ;数据转换为字符
mov di,0
mov bx,0
mov ah,9
int 21h
mov bx,offset shuju ;排序算法
mov si,0
mov cx,10
A1:
mov di,0
push cx ;外循环,cx入栈
A2: ;内循环
mov ax,[bx+di]
cmp ax,[bx+di+2] ;比较
ja A3
change:
;xchg ax,[bx+di+2] 交换
push ax
mov ax,[bx+di+2]
pop [bx+di+2]
mov [bx+di],ax
A3:
add di,2
loop A2
pop cx ;外循环
add si,2
loop A1
mov si,0 ;数据转换为字符
mov di,0
mov bx,0
剩余5页未读,继续阅读
资源评论
菇凉小伙
- 粉丝: 118
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功