36顺序查找算法及程序实现

上传人:壹****1 文档编号:570626098 上传时间:2024-08-05 格式:PPT 页数:20 大小:747.50KB
返回 下载 相关 举报
36顺序查找算法及程序实现_第1页
第1页 / 共20页
36顺序查找算法及程序实现_第2页
第2页 / 共20页
36顺序查找算法及程序实现_第3页
第3页 / 共20页
36顺序查找算法及程序实现_第4页
第4页 / 共20页
36顺序查找算法及程序实现_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《36顺序查找算法及程序实现》由会员分享,可在线阅读,更多相关《36顺序查找算法及程序实现(20页珍藏版)》请在金锄头文库上搜索。

1、36 顺序查找算法及程序实现顺序查找算法及程序实现1查找找查找是一种找是一种查询数据的技数据的技术,其目,其目标是能以比是能以比较少的步少的步骤或或较短短时间内找到所需的内找到所需的对象。程序将按照象。程序将按照查找的找的结果果(找到或找到或未找到未找到)来决定接着来决定接着应执行的步行的步骤。查找的方法很多,找的方法很多,对不同的不同的数据数据结构有不同的构有不同的查找方法。参加找方法。参加选考的同学,只需要掌握考的同学,只需要掌握顺序序查找和找和对分分查找两种方法。找两种方法。2顺序序查找算法找算法顺序序查找的基本思想是从第一个数据开始,按找的基本思想是从第一个数据开始,按顺序逐个将序逐个

2、将数据与数据与给定的数据定的数据(查找找键)进行比行比较,若某个数据和,若某个数据和查找找键相相等,等,则查找成功,找成功,输出所出所查数据的位置;反之,数据的位置;反之,输出未找到。出未找到。顺序序查找算法的找算法的处理理过程程假定在数假定在数组d中有中有n个数据,个数据,查找找键已已经存存储在在变量量key中。中。其其处理理过程是:从数程是:从数组d的第的第1个元素个元素d(1)开始,依次判断各元素开始,依次判断各元素的的值是否与是否与查找找键key相等,若某个数相等,若某个数组元素元素d(i)的的值等于等于key,则结束束处理理(找到了指定的数据找到了指定的数据);若找遍了所有的;若找遍

3、了所有的n个元素,无个元素,无任何元素的任何元素的值等于等于key,则结束束处理理(输出未找到信息出未找到信息)。顺序序查找算法流程找算法流程图3顺序序查找算法的程序找算法的程序结构构程序程序实现代代码: k0 For i1 To n If a(i)key Then ki Next i If k0 Then 输出出查找成功找成功 Else 输出出查找不成功找不成功 End If 本本节的学的学习要求掌握要求掌握顺序序查找算法的基本思想,能找算法的基本思想,能用程序来用程序来实现顺序序查找的算法。考找的算法。考查方式方式为选择题与填与填空空题。1为找自己第一次上幼儿园找自己第一次上幼儿园时的照片

4、,小的照片,小张同学依次翻开自同学依次翻开自己的多本相册来逐己的多本相册来逐张查找。找。这种种查找方法找方法为 ()A无序无序查找找 B顺序序查找找C对分分查找找 D随机随机查找找B B 2由由10个数个数组成的数列:成的数列:25、36、45、87、96、84、71、65、99、27,从中,从中查找数据找数据36时,最适合的,最适合的查找方式是找方式是 ()A随机随机查找找 B顺序序查找找 C对分分查找找 D模糊模糊查找找B B3英文字典中的英文字典中的单词是按字母是按字母ASCII从小到大排列的,从小到大排列的,习惯上将上将这种排法叫做字典排列。要在字典中快速种排法叫做字典排列。要在字典中

5、快速查找某一个找某一个单词(如如Best)的解的解释,下列最适合的,下列最适合的查找方法是找方法是()A顺序序查找找 B对分分查找找C倒序倒序查找找 D随机随机查找找B B 4某数某数组有有7个元素,依次分个元素,依次分别是是11、25、37、48、56、62、69,若采用,若采用顺序序查找法在找法在该数数组中中查找数据找数据25,需,需要要查找的次数是找的次数是 ()A1 B2 C3 D4B B 5在数在数组23、41、54、26、84、52、65、21中中查找数字找数字52,采,采用从后往前用从后往前顺序序查找,需要找,需要查找的次数是找的次数是()A2次次 B3次次 C7次次 D1次次B

6、 B 6.某校在某校在进行新生行新生录取工作取工作时,建立了一个数据,建立了一个数据库,共有共有650位新生位新生(没有重名没有重名)的的记录,现需要找出某需要找出某个学生是否已个学生是否已经报名参加名参加该校的暑期校的暑期军训。Private Sub Command1_Click() Dim search As Integer, Stu As String search 0 Stu Text1.Text For i 1 To 650 If Stu a(i) Then _ Exit For End If Next i If search 0 Then MsgBox “找到找到该学生,在数学生,

7、在数组位置:位置:” Str(search) Else mxgbox “找不到找不到该学生学生” End IfEnd Sub 已知在一个事件已知在一个事件过程中已程中已经完成完成650个学生的数据个学生的数据录入,学生姓名入,学生姓名信息存放在数信息存放在数组a(1 to 650)中,中,Command1_Click事件事件过程完成了程完成了在在对象象Text1中中输入学生姓名后,入学生姓名后,在在Label1中中输出出查找找结果。程序中果。程序中画画线部分部分应填入填入_,该程序程序主要采用了主要采用了_算法。算法。Search=i顺序查找顺序查找7现在的学在的学业水平考水平考试都都进行网上

8、行网上报名,小李名,小李设计了一个了一个模模拟查询的程序,的程序,实现查询某位考生已某位考生已经报考的科目信考的科目信息。息。设数数组zkh用来存放学生的用来存放学生的报名序号,数名序号,数组name和和bmk分分别存存储对应考生的姓名和已考生的姓名和已报考科目信息。程序考科目信息。程序运行界面如下运行界面如下图所示:所示:输入入报名序号与考生姓名,若名序号与考生姓名,若报名序号存在且考名序号存在且考生姓名生姓名输入正确,入正确,则显示考生已示考生已报考科目信息。考科目信息。部分代部分代码如下所示:如下所示:Private Sub Command1_Click() Dim i As Integ

9、er, s As Integer Dim z As String, n As String, k As String z Text1.Text n Text2.Text For i 1 To n If Name(i) Then s i Exit For End If Next i If s 0 Then Label3.Caption “该考生已考生已报考的科目是:考的科目是:” Else msgbox “找不到找不到该考生考生” End IfEnd SubPrivate Sub Form_Load()考生考生报名序号、姓名和名序号、姓名和报考科目数考科目数组赋值部分,忽略部分,忽略End Su

10、b(1)该程序采用的算法是程序采用的算法是_。请将划将划线处的的语句或表达式填充完整。句或表达式填充完整。(2)划划线处应填入填入_。(3)划划线处应填入填入_。顺序查找算法顺序查找算法bmk(s)z=zkh(i) And n8要求从某一字符串中要求从某一字符串中删除指定的字符除指定的字符(假假设所含的英文字母所含的英文字母均均为小写字母小写字母),并将,并将处理后的字符串重新理后的字符串重新输出。出。程序界面如程序界面如图所示,在文本框所示,在文本框Text_1中中输入原始字符串,在文入原始字符串,在文本框本框Text_2中中输入需要入需要删除的字符,除的字符,单击“删除此字符除此字符”按按

11、钮(Command1)后,在文本框后,在文本框Text_3中中输出出处理后的理后的结果。果。注:该示例程序在素材文件夹下注:该示例程序在素材文件夹下vb31文件中。文件中。解决此解决此问题的算法流程的算法流程图如如图所示,相所示,相应的的Visual Basic程序如下:程序如下:Dim p As String, k As StringPrivate Sub Command1_Click() Dim s As Integer, result As String, flag As Boolean result “” p Text_1.Text k Text_2.Text For s 1 To L

12、en(p) flag f(s) If Not flag Then result result End If Next s End SubFunction f(s As Integer) As Boolean If Mid(p, s, 1) k Then f TrueEnd Function(1)解决此解决此问题的算法是的算法是_ (选填:填:顺序序查找或找或对分分查找找)在程序在程序和和划划线处,填入适当的,填入适当的语句或表句或表达式,把程序达式,把程序补充完整。充完整。(2)程序中程序中划划线处应填入填入_。(3)程序中程序中划划线处应填入填入_。顺序序查找找Mid(p,s,1)Text_

13、3.Text=result9普源普源为晚上的班晚上的班级联欢会会设计了一个抽了一个抽奖程序,将所有程序,将所有同学的同学的编号和号和对应的姓名分的姓名分别保存在数保存在数组a(全班共全班共50个同个同学,学,编号号为1到到50)和数和数组b中,程序会随机中,程序会随机产生一个生一个1到到50的正整数的正整数(同同时包括包括1和和50),作,作为中中奖编号。号。程序界面如程序界面如图所示,左所示,左边列表框列表框List1中中显示同学的示同学的编号号和姓名,和姓名,单击“抽抽奖”按按钮(Command1),在,在标签Label3中中显示抽中的示抽中的编号,同号,同时在在标签Label4中中显示示

14、“恭喜恭喜*同同学学”,其中具体同学的姓名从数,其中具体同学的姓名从数组b中中获取。取。解决此解决此问题的程序段如下:的程序段如下:Dim a(1 To 50) As IntegerDim b(1 To 50) As StringFunction search(m As Integer) As Integer search 0 For i 1 To 50 If m a(i) Then search a(i) End If Next iEnd FunctionPrivate Sub Command1_Click() Dim c As Integer, t as Integer Randomize

15、 Label3.Caption Str(c) t search(c) If t 0 Then Label4.Caption “恭喜恭喜” “同学同学” End IfEnd SubPrivate Sub Form_Load( ) 此此过程用于程用于对数数组a和数和数组b进行初始行初始赋值,代,代码略略End Sub (1)函数函数search中所用的算法是中所用的算法是_。 在程序在程序和和划划线处,填入适当的,填入适当的语句或表达式,把句或表达式,把程序程序补充完整:充完整:(2)程序中程序中划划线处应填入填入_。 (3)程序中程序中划划线处应填入填入_。顺序序查找算法找算法c=Int(Rnd

16、()*50+1)b(c)10.学校的每个学生卡卡号都是唯一的,卡内学校的每个学生卡卡号都是唯一的,卡内记录学生学生的个人信息。下列程序的功能是:在文本框的个人信息。下列程序的功能是:在文本框Text1中中输入入捡到的学生卡卡号,到的学生卡卡号,单击“查找找”按按钮Command1,查找失主的信息,并在找失主的信息,并在标签Label3中中显示。部分示。部分VB程序代程序代码如下所示:如下所示:定定义存放卡号的数存放卡号的数组a,存放学生卡卡号,存放学生卡卡号定定义存放学生信息的数存放学生信息的数组b,存放学生个人信息,存放学生个人信息Private Sub Command1_Click() C

17、onst n 1000 Dim i As Integer, f As Integer Dim x As String, s As String x f 0 For i 1 To n If Then f i Exit For End If Next i If Then Label3.Caption “该学生是学生是” Str(b(i) Else Label3.Caption “没有没有该卡号卡号” End IfEnd Sub在程序在程序划划线处,填入适当的,填入适当的语句或表句或表达式,把程序达式,把程序补充完整:充完整:(1)程序中程序中划划线处应填入填入_。 (2)程序中程序中划划线处应填入填入_。 (3)程序中程序中划划线处应填入填入_。Val(Text1.text)x=a(i) f0

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 试题/考题 > 初中试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号