汇编网首页登录博客注册
masmaster的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
文章收藏

[2010-08-08 11:33] 顺序表算法练习之:查找

对于给定的数据元素,如果在顺序表中能够找到与之相同的数据元素,则返回它在顺序表中的位置。如果顺序表中有多个与之相同的数据元素,则只返回第一次找到的数据元素,如果没有与之相同的数据元素,则返回失败标志。
查找运算的主要操作是比较(cmp),比较的次数与被查找元素在表中的位置有关,即与输入有关。因此,只需求出最坏情况下的时间复杂度。需要比较n次,即查找运算的时间复杂度为O(n)。

;-----------------------------------------------------
  1 title   seek element,print element's position
  2 assume  cs:code
  3 data    segment
  4 array   db      2,4,6,8,10,1,3,5,7,9    ;
  5 var     db      10                      ;want to seek element
  6 pos     db      ?                       ;element position
  7 data    ends
  8 code    segment
  9 start:
 10         mov ax,data
 11         mov ds,ax
 12
 13         mov bx,offset array             ;ds:bx,first address
 14         mov cx,lengthof array           ;array length
 15         mov al,ds:var                   ;put var in al
 16 L:
 17         cmp al,[bx]                     ;compare one by one
 18         jz found                        ;found!
 19         inc bx
 20         loop L
 21         jmp over                        ;No found!
 22 found:
 23         xchg ds:pos,bl
 24 over:
 25         mov ah,4ch
 26         int 21h
 27 code    ends
 28 end     start
;-----------------------------------------------------
评论次数(0)  |  浏览次数(521)  |  类型(程序与练习) |  收藏此文  | 
 
 请输入验证码  (提示:点击验证码输入框,以获取验证码