VB对分查找专题.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VB查找专题 班级 姓名 知识点回顾: 查找概念及意义:到一组有序或无序的数(如果数据是有规律的就可以不用数组)中找符合条件的数据。意义:生活中查找应用广泛,所以研究查找算法很有必要。 顺序查找算法:从第一个元素开始,按顺序依次将数据与需查找的给定值比较,若某次发现数据相等,则退出查找,提示查找成功、数据所处位置或值等信息。如所有数据查完,没找到,则查找不成功。 关于顺序查找需理解: ※字符串也能查找与被查找,字符串相等的判断标准是从前往后每一个字符都相等 ※被查找的一组数据可以是无序的,当然有序也可以。 ※实现要点是循环加选择,一般是for 加 if语句,注意与枚举算法的区别。 ※到N个数据中用顺序查找找一个数,最少查找次数1,最多查找次数n,平均查找次数(n+1)/2 Key = val( text1.text ) For i=1 to n step 1 If a(i)=key then Key = val( text1.text ) For i=1 to n step 1 If a(i)=key then label1.caption=”在数组第”+str(i)+”位置上找到数据”+str(key) Exit for ’标准代码,退出循环 End if Next i If i=n+1 then label1.caption=”没有找到!” ‘所有位置找一遍,没找到;“i=n+1”可改为“in” Key = val( text1.text ) : i=1 : f=false Key = val( text1.text ) : i=1 : f=false ‘boolean类型的变量f记录是否找打 Do while i=n and f=false ‘f=false可以写成not f If a(i)=key then f=true label1.caption=”在数组第”+str(i)+”位置上找到数据”+str( key ) End if i=i+1 Next i If i=n+1 then label1.caption=”没有找到!” ‘所有位置找一遍,没找到;“i=n+1”可改为“in”或“not f” 对分查找算法:又名二分查找,高效,但前提是背查找的数据必须是有序的。 在有序的一组数据中,先将处于中间位置的数据与查找数据比较,若相等则提示成功;否则根据数组的有序性(升序或降序)判断要查找的数据在前半部分还是后半部分,然后缩小范围按以上方法继续查找,直到找到或找一遍发现数据不存在。 关于对分查找需理解: ※到N个数据中用经典对分查找某数,最少查找次数1,最多查找次数int(log2n)+1,平均查找次数为: ※被查找的一组数据必须是有序的,查找过程中注意其升序还是降序。 ※查找次数不定,一般用do while 语句实现循环,请部分同学尝试将语句改为用for语句实现。 7、对分查找经典算法:(被查找数据以升序为例) Key = val( text1.text ):i=1: j=n: f=false Key = val( text1.text ):i=1: j=n: f=false Do while i=j and f=false m=(i+j)\2 ‘可改为m=int((i+j)/2),m有非常多的变式,请注意题中书写 If a(m)=key then f=true: label1.caption=”在数组第”+str(i)+”位置上找到数据”+str( key ) Elseif keya(m) then ‘需要查找的值到前半段找,前半段的尾位置是中值-1 j=m-1 Else ‘可改为elseif keya(m) then i=m+1 ‘需要查找的值到后半段找,后半段的首位置是中值+1 End if Loop

文档评论(0)

我思故我在 + 关注
实名认证
内容提供者

部分用户下载打不开,可能是因为word版本过低,用wps打开,然后另存为一个新的,就可以用word打开了

1亿VIP精品文档

相关文档