写了个二分法查找函数
2005-04-27 22:15
295 查看
今日有csdn的网友问到这个问题,所以写了这个函数,如下:
'二分法查找函数
'功能:在数组中查找指定的值
'返回:若查到指定值则返回相应的索引,否则返回-1
'程序:by Tang 22:06 2005-4-27
Function vbBinarySearch(vb_Array() As Long, ByVal vb_Find As Long) As Long
Dim SearchMin As Long
Dim SearchMax As Long
Dim i As Long
vbBinarySearch = -1
SearchMin = LBound(vb_Array)
SearchMax = UBound(vb_Array)
Do
i = (SearchMax + SearchMin) / 2
If vb_Array(i) = vb_Find Then
vbBinarySearch = i
Exit Do
End If
If vb_Array(i) > vb_Find Then
SearchMax = i - 1
Else
SearchMin = i + 1
End If
Loop While SearchMax >= SearchMin
End Function
Private Sub Command1_Click()
Dim vbArr(10) As Integer
Dim i As Long
For i = 0 To 10
vbArr(i) = i + 1
Next i
i = vbBinarySearch(vbArr, 7) '在数组中查找7
MsgBox i
i = vbBinarySearch(vbArr, 5) '在数组中查找5
MsgBox i
i = vbBinarySearch(vbArr, 4) '在数组中查找4
MsgBox i
i = vbBinarySearch(vbArr, 108) '在数组中查找108
MsgBox i 'i=-1
End Sub
对应的论坛帖子连接是:
http://community.csdn.net/Expert/topic/3971/3971715.xml?temp=.9264643
'-------------------------------------------
' 转载请注明出处
' 作者:唐细刚
' 邮箱:tanaya@163.com
'-------------------------------------------
'二分法查找函数
'功能:在数组中查找指定的值
'返回:若查到指定值则返回相应的索引,否则返回-1
'程序:by Tang 22:06 2005-4-27
Function vbBinarySearch(vb_Array() As Long, ByVal vb_Find As Long) As Long
Dim SearchMin As Long
Dim SearchMax As Long
Dim i As Long
vbBinarySearch = -1
SearchMin = LBound(vb_Array)
SearchMax = UBound(vb_Array)
Do
i = (SearchMax + SearchMin) / 2
If vb_Array(i) = vb_Find Then
vbBinarySearch = i
Exit Do
End If
If vb_Array(i) > vb_Find Then
SearchMax = i - 1
Else
SearchMin = i + 1
End If
Loop While SearchMax >= SearchMin
End Function
Private Sub Command1_Click()
Dim vbArr(10) As Integer
Dim i As Long
For i = 0 To 10
vbArr(i) = i + 1
Next i
i = vbBinarySearch(vbArr, 7) '在数组中查找7
MsgBox i
i = vbBinarySearch(vbArr, 5) '在数组中查找5
MsgBox i
i = vbBinarySearch(vbArr, 4) '在数组中查找4
MsgBox i
i = vbBinarySearch(vbArr, 108) '在数组中查找108
MsgBox i 'i=-1
End Sub
对应的论坛帖子连接是:
http://community.csdn.net/Expert/topic/3971/3971715.xml?temp=.9264643
'-------------------------------------------
' 转载请注明出处
' 作者:唐细刚
' 邮箱:tanaya@163.com
'-------------------------------------------
相关文章推荐
- php 数组二分法查找函数代码
- php 数组二分法查找函数
- 写了个二分法查找函数
- c++ STL常用查找函数count find 二分法查找
- NOI(1.11编程基础之二分查找-02:二分法求函数的零点)
- C 语言中自定义类型排序函数qsort以及相应的二分法查找函数bsearch
- 利用函数进行二分法查找
- php 数组二分法查找函数代码
- 二进制查找替换常用函数
- 二分法查找
- 二分法查找
- 条款24 成员函数查找
- 二分法查找
- 算法学习--二分法查找
- 查找函数实现所在的库的shell脚本
- 二分法实现一个整形有序数组的二分查找
- C语言字符串查找函数
- 二分法查找,用少量的步数找到目标
- 【笔记】 使用GNU profiler查找性能瓶颈,查看代码中每个函数所消耗的时间
- 查找本机网卡MAC地址的函数。网络上资料代码矫正