欢迎来到天天文库
浏览记录
ID:34351104
大小:68.50 KB
页数:4页
时间:2019-03-05
《vb常用算法8 查找》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、VB常用算法----查找1、顺序查找逐个元素找,如果有,则记录位置,然后跳出循环;否则,查找失败。代码如下:PrivateSubSearch(a()asinteger,ByValKeyasinteger,IndexAsInteger)Dimi%Fori=LBound(a)ToUBound(a)Ifa(i)=KeyThen'找到,将元素下标保存在index中并结束查找Index=iExitSubEndIfNextiIndex=-1'若没找到,则index值为-1EndSub 2、二分法查找顺序查找效率低下,当数组有序排列时,可以使用二分法查找提高效率。算
2、法思想:4代码如下:OptionExplicitPrivateSubbirSearch(a()AsInteger,ByVallow%,ByValhigh%,ByValKey,index%)DimmidAsIntegerIflow>highThen'没有查找到index=-1ExitSubEndIfmid=(low+high)2'取查找区间的中点IfKey=a(mid)Then'查找到,返回下标index=midExitSubElseIfKey3、ndIfCallbirSearch(a,low,high,Key,index)'递归调用查找函数EndSub调用方法:PrivateSubCommand1_Click()Dima(11)AsInteger,findAsIntegerDimindAsIntegera(1)=5:a(2)=13:a(3)=19:a(4)=21:a(5)=37a(6)=56:a(7)=64:a(8)=75:a(9)=80:a(10)=88:a(11)=92find=InputBox("请输入欲查找元素值")CallbirSearch(a,LBound(a),UBound(a)4、,find,ind)Ifind>0ThenPrint"所查找元素为数组第";ind;"个元素"ElsePrint"所查找元素在数组中不存在"EndIfEndSub43、实战练习完善程序填空题(2002春二(9))在程序所在目录的stu.txt文件中以下述格式保存着学生姓名及班号信息。本程序的功能是:读取该文件中的数据,再利用InputBox输入要查找的学生姓名,通过顺序查找,给出找到或找不到的信息。附图是某同学被找到时显示的信息窗口。张文,机械01李明,机械01王文卉,机械01…何宇宙,电子02 OptionExplicitOptionBase1Pri5、vateSubcommand1_click()Dimstu()AsString,glass()AsString,iAsIntegerDimnAsInteger,nameAsString,kAsIntegerOpenApp.Path&"stu.txt"ForInputAs#11DoWhile(1)(2)ReDimPreservestu(n),glass(n)Input#11,stu(n),glass(n)Loopname=InputBox("输入欲查找的学生姓名:")Callsearch(name,stu,k)Ifk<=nThenMsgBox(3)4E6、lseMsgBox"无此人。"EndIfClose#11EndSubPrivateSubsearch(nameAsString,stu()AsString,kAsInteger)DimiAsIntegerFori=1ToUBound(stu)Ifname=stu(i)Then(4)EndIfNexti(5)EndSub4
3、ndIfCallbirSearch(a,low,high,Key,index)'递归调用查找函数EndSub调用方法:PrivateSubCommand1_Click()Dima(11)AsInteger,findAsIntegerDimindAsIntegera(1)=5:a(2)=13:a(3)=19:a(4)=21:a(5)=37a(6)=56:a(7)=64:a(8)=75:a(9)=80:a(10)=88:a(11)=92find=InputBox("请输入欲查找元素值")CallbirSearch(a,LBound(a),UBound(a)
4、,find,ind)Ifind>0ThenPrint"所查找元素为数组第";ind;"个元素"ElsePrint"所查找元素在数组中不存在"EndIfEndSub43、实战练习完善程序填空题(2002春二(9))在程序所在目录的stu.txt文件中以下述格式保存着学生姓名及班号信息。本程序的功能是:读取该文件中的数据,再利用InputBox输入要查找的学生姓名,通过顺序查找,给出找到或找不到的信息。附图是某同学被找到时显示的信息窗口。张文,机械01李明,机械01王文卉,机械01…何宇宙,电子02 OptionExplicitOptionBase1Pri
5、vateSubcommand1_click()Dimstu()AsString,glass()AsString,iAsIntegerDimnAsInteger,nameAsString,kAsIntegerOpenApp.Path&"stu.txt"ForInputAs#11DoWhile(1)(2)ReDimPreservestu(n),glass(n)Input#11,stu(n),glass(n)Loopname=InputBox("输入欲查找的学生姓名:")Callsearch(name,stu,k)Ifk<=nThenMsgBox(3)4E
6、lseMsgBox"无此人。"EndIfClose#11EndSubPrivateSubsearch(nameAsString,stu()AsString,kAsInteger)DimiAsIntegerFori=1ToUBound(stu)Ifname=stu(i)Then(4)EndIfNexti(5)EndSub4
此文档下载收益归作者所有