欢迎来到天天文库
浏览记录
ID:61628392
大小:2.62 MB
页数:37页
时间:2021-03-04
《高考信息技术复习考点扫描22 查找算法(浙江专用)(共38张PPT).pptx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、专题二十二查找算法PART01顺序查找基本思想从第一个数据开始,按数据的顺序逐个将数据与给定的值进行比较。若某个数据和给定的值相等,则查找成功,找到所查数据的位置;反之,查找不成功。Key=Val(Text2.Text)Fori=1TonIfd(i)=KeyThenLabel5.Caption=“已找到,在数组的"+Str(i)+"位置"ExitForEndIfNextiIfi=n+1ThenLabel5.Caption="在数组中没有找到"+Str(Key)EndIf程序代码Key=Val(Text2.Text)i=1DoW
2、hilei<=nIfd(i)=KeyThenLabel5.Caption=“已找到,在数组的"+Str(i)+"位置"ExitDoEndIfi=i+1LoopIfi=n+1ThenLabel5.Caption="在数组中没有找到"+Str(Key)EndIfDO语句Key=Val(Text2.Text)k=0Fori=1TonIfd(i)=KeyThenk=iExitForNextiIfk<>0ThenList1.Additem“已找到,在数组的”+Str(k)+“位置"ElseList1.Additem"在数组中没有找到"+
3、Str(Key)EndIf变形1Key=Val(Text2.Text)i=1:Flag=0DoWhilei<=nAndFlag=0Ifd(i)=KeyThenLabel5.Caption=“已找到,在数组的"+Str(i)+"位置"Flag=1EndIfi=i+1LoopIfFlag=0ThenLabel5.Caption="在数组中没有找到"+Str(Key)EndIf变形2PART02对分查找对分查找(二分查找),是一种效率很高的查找方法,但被查找的数据必须是有序的(以递增为例)基本思想:首先把待查数据与数组中间位置的数进
4、行比较,如果待查数据比中间位置的数大,在数组的后半部分继续查找,否则在数组的前半部分查找,继续对分查找,直到找到待查数据在数组中的位置或数组已无法对分。基本思想1015171822273545485265677285979812345678910111213141516下标元素数组d(n):m=Int()=8i=1j=16第1次比较:Key>d(m)查找范围应该变成d(9)~d(16)Key=52我们用变量i和j记录所要查找范围的起始和终止位置(i+j)/2查找过程1015171822273545485265677285979
5、812345678910111213141516下标元素i=9j=16第2次比较:Key6、Text2.Text)i=1j=nDoWhilei<=jm=(i+j)2Ifd(m)=KeyThenLabel6.Caption="在数组的"+Str(M)+"位置中"ExitSubEndIfIfd(m)7、tion=“在数组的”+Str(M)+“位置中"Flag=TrueElseIfd(m)8、t(Rnd*100)+0.5DoWhilei<=jm=(i+j)2Ifkey=a(m)ThenExitDoElseIfkey
6、Text2.Text)i=1j=nDoWhilei<=jm=(i+j)2Ifd(m)=KeyThenLabel6.Caption="在数组的"+Str(M)+"位置中"ExitSubEndIfIfd(m)7、tion=“在数组的”+Str(M)+“位置中"Flag=TrueElseIfd(m)8、t(Rnd*100)+0.5DoWhilei<=jm=(i+j)2Ifkey=a(m)ThenExitDoElseIfkey
7、tion=“在数组的”+Str(M)+“位置中"Flag=TrueElseIfd(m)8、t(Rnd*100)+0.5DoWhilei<=jm=(i+j)2Ifkey=a(m)ThenExitDoElseIfkey
8、t(Rnd*100)+0.5DoWhilei<=jm=(i+j)2Ifkey=a(m)ThenExitDoElseIfkey
此文档下载收益归作者所有