当前位置:你问我答 >  详情

[程序设计]二分法查找

Public Function BinSearch(ByRef strElement() As String, ByVal strKey As String) As Long '二分法查找
    Dim lngLow As Long
    Dim lngHigh As Long
    Dim lngMiddle As Long
    lngLow = 0
    lngHigh = UBound(strElement)
    While (lngLow <= lngHigh)
        lngMiddle = (lngLow + lngHigh) / 2
        If strElement(lngMiddle) = strKey Then
            BinSearch = lngMiddle
            Exit Function
        Else
            If strElement(lngMiddle) > strKey Then
                lngHigh = lngMiddle - 1
            Else
                lngLow = lngMiddle + 1
            End If
        End If
    Wend
    BinSearch = -1  '查找失败
End Function
使用说明:BinSearch(数组,查找的内容),返回查找到数组的序号,查找失败返回-1。
          数组从0开始。

全部评论

等级:LV28
积分:12016
知足常乐 2019-12-02 06:42
专家级分享,但是都没啥实际用途,谁还去用这些啊
回复 0
AcadApp等你用到时你就知道了,21世纪讲究的是效率。
2019-12-02 11:02:34
等级:LV7
积分:2664
取啥名 2019-12-02 09:10
点赞!
回复 0
等级:LV30
积分:650
兵哥哥 2019-12-03 19:25
留着看啥时能用上
回复 0
1

提交
悬赏回复规则
1、悬赏期为24小时,从发布时间起算;
2、悬赏期内提问者如设置评论为“精选评论”,视为悬赏结束,该精选评论人将获得本题全部悬赏积分;
3、悬赏期内如提问者未设置“精选评论”,则前5位评论者平分悬赏积分(如仅有一位评论,该评论者获得50%悬赏积分);
4、悬赏积分会自动发放到生态圈账户中,请留意站内信通知。
知道了

距离打开宝箱还剩7

是否花费200积分补签?
确认
取消