顺序查找
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
对有n个元素的数组进行顺序查找
(设数组名为d,数组元素下标范围为1 To n)
算法描述(伪代码)
①设置要找的元素值key ②从数组d的第i个位置开始找(i初值等于1) ③如果d(i)=key ,则输出i,并退出循环 ④否则i指向下一个位置,继续找 ⑤如果找到数组末尾还没找到,则输出找不到
算法描述(流程图)
算法描述(VB程序语言)
使用For……Next循环 key = Val(Text1.Text) For i = 1 To n 'n用来表示数组中元素的个数 If d(i) = key Then '在第i个位置找到 Print "找到,在下标为" & i & "的元素中" Exit For '找到了就退出循环 End If Next i If i = n + 1 Then Print "在数组中未找到这个数" '或者If i>n Then
输入查找的元素值,key=32 例如:Dim d(1 To 4) As Integer '定义一个数组d 定义一个变量i,让i由1变化到4,判断d(i)是否等于key
d(1) d(2) 27 36 i=1
d(i) < > key d(i) < > key 此时d(i)=key,数组中第3个元素的位置
顺序查找算法分析
若一个数组有n个元素,则待查找的key值可能 出现在第1个至第n个元素的位置上 当key值在第1个元素的位置上时,则查找1次 当key值在第2个元素的位置上时,则查找2次 …… 当key值在第n个元素的位置上时,则查找n次 对于这n种情况的平均查找次数为: (1+2+……+n) / n =(n+1) / 2
算法描述(VB程序语言)
使用Do……While循环与标记变量相结合 'flag是一个逻辑型变量,用来表示查找的数据是否找到, False为未找到,True为找到了,flag的默认值为False key = Val(Text1.Text) i=1 '在每一次查找开始前判断i值 Do While i <= n And flag = False 是否超过数组元素个数和是否 If d(i) = key Then 找到key值 Print "找到,在下标为" & i & "的元素中" flag = True End If i=i+1 Loop If flag = False Then Print "在数组中未找到这个数据" '或者If i>n Then或者If i=n+1 Then
查找算法之顺序查找
查找算法的定义
查找就是在指定的某列有序或无序 数据中按照给定的条件找到符合条件的 数据。
顺序查找的基本思想
在一组数据中,从第一个数据开始,按 照这组数据的排列顺序将每个数据逐个 与给定的值进行比较。若某个数据与给 定值相等,则查找成功,找到所查数据 的位置;反之查找不成功。
顺序查找示例
源自文库
算法描述(VB程序语言)
使用Do……While循环 key = Val(Text1.Text) i=1 Do While i <= n 'n用来表示数组中元素的个数 If d(i) = key Then '在第i个位置找到 Print "找到,在下标为" & i & "的元素中" Exit Do '找到了就退出循环 End If i=i+1 Loop If i = n + 1 Then Print "未找到" '或者If i>n Then
d(3) d(4)
d(1) d(2) d(3) d(4)
32 18
27 36 32 18
i=2 i=3
如果输入查找的元素值key=22 i=1 d(i) < > key
i=2 d(i) < > key i=3 d(i) < > key i=4 d(i) < > key i=5 此时i等于5,超过数组中元素个数,找不到