《查找算法设计》教学课件2_第1页
《查找算法设计》教学课件2_第2页
《查找算法设计》教学课件2_第3页
《查找算法设计》教学课件2_第4页
《查找算法设计》教学课件2_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

4.3查找算法设计顺序查找和对半查找查找是一种查询数据的技术,其目标是能以比较少的步聚和较短的时间找到所需的对象。顺序查找的基本思想是从第一个数据开始,按数据的顺序逐个将数据与给定的值进行比较。若某个数据和给定的值相等,则查找成功,找到所查数据的位置;反之,查找不成功。查找算法顺序查找27363218d(1)d(2)d(3)d(4)输入查找的元素值key=32i=1i=2i=3此时d(i)=key,数组中的第3个位置从数组d的第1个元素d(1)开始,依次判断各元素的值是否与查找键key的值相等。顺序查找如果输入查找的元素值key=22i=1i=2i=3i=4i=527363218d(1)d(2)d(3)d(4)此时i等于5,超过数组中元素个数,找不到从数组d的第1个元素d(1)开始,依次判断各元素的值是否与查找键key的值相等。顺序查找的流程图开始i1d(i)=key?i<=n?ii+1未找到,输出结果:0找到,输出结果:i结束YNYN转化成程序PrivateSubCommand6_Click()'顺序查找Key=Val(Text2.Text)Fori=1TonumIfd(i)=KeyThenLabel5.Caption="在数组的"+Str(i)+"位置中"

ExitForEndIfNextIfi=num+1ThenLabel5.Caption="在数组中没有找到"+Str(Key)EndIfEndSub对半查找的基本思想对半查找的前提是数据已经有序(以递增为例),然后把待查找的数据与数组中间位置的数比较,如果比中间位置的数大,在数组的后半部分继续查找,否则在数组的前半部分查找,继续对分查找,直到找到待查找的数在数组中的位置或数组已无法对分。1015171822273545485265677285979812345678910111213141516下标元素数组d(i):I=1J=16M=fix((i+j)/2)=8第1次比较:Key>d(m)查找范围应该变成d(9)~d(16)Key=52我们用变量I和J记录所要查找范围的起始和终止位置(1)过程:1015171822273545485265677285979812345678910111213141516下标元素数组d():I=9J=16M=fix((i+j)/2)=12第2次比较:Key<d(m)查找范围应该变成d(9)~d(11)Key=52我们用变量I和J记录所要查找范围的起始和终止位置1015171822273545485265677285979812345678910111213141516下标元素I=9J=11M=fix((i+j)/2)=10第3次比较:Key=d(m)找到了Key=52在规模为n的数组变量d中进行对分查找的流程图未找到,输出结果:0开始I←1,j←ni<=j?找到,输出结果:m结束NY计算中点m←(i+j)\2d(m)=key?D(m)<key?i←m+1j←m-1YYNN代码分析command4的click过程Key=Val(Text2.Text)i=1j=numDoWhilei<=j

Ifd(M)=KeyThenLabel6.Caption="在数组的"+Str(M)+"位置中"

ExitSubEndIfIfd(M)<KeyThen

ElseEndIfLoopLabel6.Caption="在数组中没有找到"+Str(Key)m=(i+j)\2i=m+1j=m-1比较顺序查找是一种基本、简单的查找算法,但查找的效率往往过低;对分查找时每次都把查

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论