3.6顺序查找算法及程序实现
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
result = “”
p = Text_1.Text
k = Text_2.Text
For s = 1 To Len(p)
flag = f(s)
(1)解决此问题的算法是_顺__序__查__找__ (选填:顺
If Not flag Then
序查找或对分查找)
result = result + ① 在程序①和②划线处,填入适当的语句或表
End If End Sub Private Sub Form_Load()
(1)该程序采用的算法是__顺__序__查__找__算__法____________。 请将划线处的语句或表达式填充完整。
(2)划线①处应填入__z_=_z_k_h_(_i)_A__n_d__n______________。 (3)划线②处应填入__b_m__k_(_s)_____________________。
If search > 0 Then
MsgBox “找到该学生,在数组位置:” + Str(search)
Else
mxgbox “找不到该学生”
End If
End Sub
7.现在的学业水平考试都进行网上报名,小李设计了一个 模拟查询的程序,实现查询某位考生已经报考的科目信 息。设数组zkh用来存放学生的报名序号,数组name和 bmk分别存储对应考生的姓名和已报考科目信息。程序 运行界面如下图所示:
If t <> 0 Then Label4.Caption = “恭喜” + ② + “同学”
End If
End Sub
Private Sub Form_Load( ) ' 此过程用于对数组a和数组b进行初始赋值,代码略
End Sub
10. 学校的每个学生卡卡号都是唯一的,卡内记录学 生的个人信息。下列程序的功能是:在文本框 Text1中输入捡到的学生卡卡号,单击“查找”按 钮Command1,查找失主的信息,并在标签Label3 中显示。部分VB程序代码如下所示:
个学生是否已经报名参加该校的暑期军训。
Private Sub Command1_Click()
Dim search As Integer, Stu As String 已知在一个事件过程中已经完成
search = 0
650个学生的数据录入,学生姓名
Stu = Text1.Text
信息存放在数组a(1 to 650)中,
Dim b(1 To 50) As String
Function search(m As Integer) As Integer search = 0 For i = 1 To 50 If m = a(i) Then search = a(i)
End If
Next i
End Function Private Sub Command1_Click()
程序界面如图所示,左边列表框List1中显示同学的编号 和姓名,单击“抽奖”按钮(Command1),在标签Label3 中显示抽中的编号,同时在标签Label4中显示“恭喜***同 学”,其中具体同学的姓名从数组b中获取。
解决此问题的程序段如下:
Dim a(1 To 50) As Integer
(1)函数search中所用的算法是__顺__序__查__找__算__法__。
Dim c As Integer, t as Integer
Randomize ① Label3.Caption = Str(c) t = search(c)
在程序①和②划线处,填入适当的语句或表达式, 把程序补充完整: (2)程序中①划线处应填入_c_=_I_n_t_(_R_n_d_(_)*_5_0_+__1_) _。 (3)程序中②划线处应填入___b_(_c)_____________。
'定义存放卡号的数组a,存放学生卡卡号
'定义存放学生信息的数组b,存放学生个人信息
Private Sub Command1_Click()
Const 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 Mid(p, s, 1) = k Then f = True
End Function
9.普源为晚上的班级联欢会设计了一个抽奖程序,将所有 同学的编号和对应的姓名分别保存在数组a(全班共50个 同学,编号为1到50)和数组b中,程序会随机产生一个1 到50的正整数(同时包括1和50),作为中奖编号。
注:该示例程序在素材文件夹下vb31文件中。
解决此问题的算法流程图如图所示,相应的Visual Basic 程序如下:
Dim p As String, k As String
Private Sub Command1_Click()
Dim s As Integer, result As String, flag As Boolean
②顺序查找算法流程图
3.顺序查找算法的程Biblioteka Baidu结构
程序实现代码: k=0 For i=1 To n
If a(i)=key Then k=i
Next i
If k<>0 Then ' 输出查找成功
Else ' 输出查找不成功
End If
本节的学习要求掌握顺序查找算法的基本思想,能 用程序来实现顺序查找的算法。考查方式为选择题与填 空题。
3.6 顺序查找算法及程序实现
1.查找 查找是一种查询数据的技术,其目标是能以比较少的步骤 或较短时间内找到所需的对象。程序将按照查找的结果(找到或 未找到)来决定接着应执行的步骤。查找的方法很多,对不同的 数据结构有不同的查找方法。参加选考的同学,只需要掌握顺 序查找和对分查找两种方法。 2.顺序查找算法 顺序查找的基本思想是从第一个数据开始,按顺序逐个将 数据与给定的数据(查找键)进行比较,若某个数据和查找键相 等,则查找成功,输出所查数据的位置;反之,输出未找到。
①顺序查找算法的处理过程
假定在数组d中有n个数据,查找键已经存储在变量key中。 其处理过程是:从数组d的第1个元素d(1)开始,依次判断各元素 的值是否与查找键key相等,若某个数组元素d(i)的值等于key, 则结束处理(找到了指定的数据);若找遍了所有的n个元素,无 任何元素的值等于key,则结束处理(输出未找到信息)。
'考生报名序号、姓名和报考科目数组赋值部分,忽略
End Sub
8.要求从某一字符串中删除指定的字符(假设所含的英文字 母均为小写字母),并将处理后的字符串重新输出。 程序界面如图所示,在文本框Text_1中输入原始字符串,在 文本框Text_2中输入需要删除的字符,单击“删除此字符” 按钮(Command1)后,在文本框Text_3中输出处理后的结果。
For i = 1 To 650
Command1_Click事件过程完成了
If Stu = a(i) Then
在对象Text1中输入学生姓名后,
____________________________ 在Label1中输出查找结果。程序中
Exit For End If Next i
画线部分应填入 ______S_e_a_r_c_h_=_i ________,该程序 主要采用了__顺__序___查__找__算法。
3.英文字典中的单词是按字母ASCII从小到大排列的,习惯
上将这种排法叫做字典排列。要在字典中快速查找某一个
单词(如Best)的解释,下列最适合的查找方法是 ( B )
A.顺序查找 B.对分查找 C.倒序查找 D.随机查找
4.某数组有7个元素,依次分别是11、25、37、48、56、
62、69,若采用顺序查找法在该数组中查找数据25,需
输入报名序号与考生姓名,若报名序号存在且考 生姓名输入正确,则显示考生已报考科目信息。 部分代码如下所示:
Private Sub Command1_Click()
Dim i As Integer, s As Integer
Dim z As String, n As String, k As String
If ② Then
f=i Exit For
在程序①②③划线处,填入适当的语句或 表达式,把程序补充完整:
End If
Next i If ③ Then
(1)程序中①划线处应填入_V_a_l_(T_e_x_t_1_._te_x_t_) 。 (2)程序中②划线处应填入___x_=_a_(i_)______。
End If Next s
②
End Sub
达式,把程序补充完整。 (2)程序中①划线处应填入_M__i_d_(_p_,s_,_1_) _____。
(3)程序中②划线处应填入_T_e_x_t__3_.T_e_x_t_=_r_es_u_l_t 。
Function f(s As Integer) As Boolean
要查找的次数是
( B)
A.1
B.2
C.3
D.4
5.在数组23、41、54、26、84、52、65、21中查找数字52,采
用从后往前顺序查找,需要查找的次数是 A.2次
( B)
B.3次
C.7次
D.1次
6. 某校在进行新生录取工作时,建立了一个数据库, 共有650位新生(没有重名)的记录,现需要找出某
(3)程序中③划线处应填入___f_<_>__0______。
Label3.Caption = “该学生是” + Str(b(i))
Else
Label3.Caption = “没有该卡号”
End If
End Sub
1.为找自己第一次上幼儿园时的照片,小张同学依次翻开自
己的多本相册来逐张查找。这种查找方法为
( B)
A.无序查找
B.顺序查找
C.对分查找
D.随机查找
2.由10个数组成的数列:25、36、45、87、96、84、71、 65、99、27,从中查找数据36时,最适合的查找方式是
(B )
A.随机查找 B.顺序查找 C.对分查找 D.模糊查找
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 “找不到该考生”