VB编程:对数组进行二分查找-29_彭世瑜_新浪博客

运行效果
VB编程:对数组进行二分查找-29

程序代码
Option Explicit
Dim myarray(100) As Integer           '定义数组,下标0-100,数组元素为101个

Private Sub Command1_Click()
    Dim low, high, mid, n As Integer
    Dim found As Boolean
    low = 0
    n = 0
    high = UBound(myarray)
    found = False
    mid = CInt((high + low) / 2)      '转换为整型,小数部分四舍五入,避免下标出现小数
    Do While Not found And (high >= low)
        n = n + 1
        If CInt(Text1.Text) = myarray(mid) Then   ''查找值和当前中间值比较,相等输出
            found = True
            Label1.Caption = "查询次数:" & n & vbCrLf & _
                             "查询数值:" & myarray(mid) & vbCrLf & _
                             "数组下标:" & mid
            Exit Do
        ElseIf CInt(Text1.Text) < myarray(mid) Then  '查找值和当前中间值比较,小了
            high = mid - 1
        Else                                   '查找值和当前中间值比较,大了
            low = mid + 1
        End If
    mid = CInt((high + low) / 2)
    Loop
End Sub

Private Sub Form_load()
 Dim i As Integer
    For i = 0 To UBound(myarray)                '给数组赋值
        myarray(i) = i
        Print myarray(i)
    Next i
End Sub

学习心得
1、二分法查找的思想就是:先取中间值作比较,看大了还是小了,大了就往下取数,小了就往上取数。这样逐步缩小查找范围,就不用每个数都去做比较。适用于有序数组,确实能提高计算效率,是一个很不错的思维方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值