二分法查找.frm
来自「蒋加伏主编VB程序设计第四版PPT及全部课本源码 北京邮电大学出版社 」· FRM 代码 · 共 53 行
FRM
53 行
VERSION 5.00
Begin VB.Form Form1
Caption = "例[8-16]二分法查找数组元素"
ClientHeight = 3405
ClientLeft = 60
ClientTop = 345
ClientWidth = 5415
LinkTopic = "Form1"
ScaleHeight = 3405
ScaleWidth = 5415
StartUpPosition = 3 'Windows Default
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub Form_Click()
Dim b()
Cls
b = Array(5, 11, 23, 27, 29, 32, 38, 43, 58, 77, 89)
For i = 0 To UBound(b) '输出数组元素
Print b(i);
Next i
Print
k = Val(InputBox("请输入关键值:"))
Call search(b(), LBound(b), UBound(b), k, m%) '调用子程序查找
If m <> -1 Then '下标返回值不为-1,查找成功
Print Spc(2); "查找元素的下标为:"; m
Else '下标返回值为-1,查找失败
Print Spc(2); "无该元素"
End If
End Sub
Sub search(a(), ByVal low%, ByVal high%, ByVal key, index%)
Dim mid As Integer
mid = (low + high) \ 2 '取查找区间的中点
If a(mid) = key Then
index = mid '查找到,返回查找到的下标
Exit Sub
ElseIf low > high Then '二分法查找区间没有元素,查找不到
index = -1
Exit Sub
End If
If key < a(mid) Then '查找区间在上半部
high = mid - 1
Else
low = mid + 1 '查找区间在下半部
End If
Call search(a(), low, high, key, index) '递归调用查找函数
End Sub
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?