VB程序设计:二分查找。在一个已经按从小到大排好序的数组中查找由inputbox输入的数,输出其位

VB程序设计:二分查找。在一个已经按从小到大排好序的数组中查找由inputbox输入的数,输出其位置或“没找到”的结论。... VB程序设计:二分查找。在一个已经按从小到大排好序的数组中查找由inputbox输入的数,输出其位置或“没找到”的结论。 展开
 我来答
sbj518
推荐于2016-09-25 · TA获得超过4.4万个赞
知道大有可为答主
回答量:1.1万
采纳率:81%
帮助的人:5312万
展开全部
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
        End While
        BinSearch = -1  '查找失败
    End Function
追问
变量定义可不可以简单点,用字母,都看不懂
追答
Public Function BinSearch(ByRef a() As String, ByVal K As String) As Long 
        Dim L As Long
        Dim H As Long
        Dim M As Long
        L = 0
        H = UBound(a)
        While (L <= H)
            M = (L + H) / 2
            If a(M) = K Then
                BinSearch = M
                Exit Function
            Else
                If a(M) > K Then
                    H = M - 1
                Else
                    L = M + 1
                End If
            End If
        End While
        BinSearch = -1  '查找失败
    End Function
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式