5.4 查找算法的程序实现 课件(13张幻灯片)

文档属性

名称 5.4 查找算法的程序实现 课件(13张幻灯片)
格式 zip
文件大小 694.2KB
资源类型 教案
版本资源 浙教版
科目 信息技术(信息科技)
更新时间 2019-06-27 14:00:47

图片预览

文档简介

课件13张PPT。对分查找 M = (L + R)2 找到key的位置M未找到升序数组aa(M) = keya(M) < keya(M) > key1.在升序数组a中,查找第一个大于等于key的值的位置M = (L + R)2 a(M) < keya(M) >= keyIf L<=n Then print Str(L) Else print”未找到”2.在升序数组a中,查找最后一个小于key的值的位置M = (L + R)2 a(M) >= keya(M) < keyIf R>=1 Then print Str(R) Else print”未找到”
有如下程序段:
Key = Val (Text1.Text) : L = 1 : R = 10 : n = 10
Do While L <= R
 M = (L + R) 2 ????
 If a(M) >= Key Then ????
   L = M + 1 ????
 Else
R = M - 1 ????
 End If
Loop
For i = L To n
List1.AddItem Str(a(i))
Next i
数组元素a(1)到a(10)的值依次是95,93,93,93,90,87,86,86,85,80,若在文本框Text1中输入86,执行该程序段后,列表框List1中输出的数据个数为( )
A.2 B.3 C.4 D.5A思考?1. For i = 1 To R
List1.AddItem Str(a(i))
Next i
结果如何? 3.a(1)到a(10)的值依次是95,93,93,93,90,87,85,80,79,78
结果如何?2. Key = 93 结果如何?在升序数组a中,查找第一个大于等于key的值的位置
Key = Val (Text1.Text) : L = 1 : R = n ??
Do While L < R
 M = (L + R) 2 ????
 If a(m) >= key Then ????
   R = M ????
 Else
L = M + 1 ????
 End If
Loop
If ___________ Then print _______ Else print“未找到”二分和排序在已经有序的数组序列中,每一步将一个待排序的记录插入到已经有序的序列中。方法:通过对分查找找到该记录在已经有序数组中的适当的插入位置,并将其插入到有序数组中,使得有序数组仍然有序,直到全部插入完为止。Key = a(i)LR数组a找到插入位置
L = 1:R = i – 1:key = a(i)
Do While L <= R
m = (L + R)2
If a(m) >= key
R = m – 1
Else
L = m + 1
End If
Loop 已排序待排序keyL将数据插入到数组中
For j = i to L+1 Step -1
a(j) = a(j - 1)
Next j
a(L) = key