课件编号5988402

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

日期:2024-05-27 科目:信息技术 类型:高中课件 查看:68次 大小:710908Byte 来源:二一课件通
预览图 1/5
查找,算法,程序,实现,课件,13张
  • cover
课件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

~~ 您好,已阅读到文档的结尾了 ~~