写了个二分法查找函数

原创 2005年04月27日 22:15:00

今日有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
'-------------------------------------------

二分法——查找、排序以及库函数bsearch的用法

二分法——查找、排序以及库函数bsearch的用法 二分法查找 1、二分查找(Binary Search)      二分查找又称折半查找,它是一种效率较高的查找方法。      二分...

求n的阶乘(递归&&非递归),Fibonacci函数,二分法查找,汉诺塔实现,排列组合,整数划分,一元多项式的加减乘

1.求n的阶乘,Fibonacci函数,二分法查找(两种方法实现:递归与非递归) 2.用递归实现汉诺塔,获取元素的排列组合,整数划分问题 3.用链表实现一元多项式的加减乘 *************...

NOI(1.11编程基础之二分查找-02:二分法求函数的零点)

在我们的编程学习中,遇到了一些问题需要将一个大规模的问题分解成几个较小规模的问题,通过对较小规模问题的求解达到对整个问题的解,这种方法叫做分治法,而在分治法中又衍生出来了一个小方法,叫做二分查找,相信...

立此存照(12)[C++]快速排序与二分法查找及C++库函数排序

#include using namespace std; void swap(int &v1, int &v2){ int temp = v1; v1 = v2; v2 = temp; } ...

二分法——查找、排序以及库函数bsearch的用法

http://yorcool.com/paper.asp?papertype=news&titleid=56  二分法查找1、二分查找(Binary Search)     二分查找又称折半查找,它是...
  • ivan240
  • ivan240
  • 2011年02月24日 09:48
  • 466

二分法——查找、排序以及库函数bsearch的用法

 虽然二分查找的效率高,但是要将表按关键字排序。而排序本身是一种很费时的运算。既使采用高效率的排序方法也要花费O(nlgn)的时间。   二分查找只适用顺序存储结构。为保持表的有序性,在顺序结构里插...
  • dm520
  • dm520
  • 2011年03月28日 13:45
  • 476

提高篇—调用函数查找数组元素下标(二分法查找)

调用函数查找数组中元素的下标(二分法查找)

二分法求函数的根

  • 2015年05月01日 11:10
  • 2KB
  • 下载

实现二分法的matlab函数文件

  • 2013年11月18日 11:12
  • 371B
  • 下载

手把手地写了一个函数,计算出两个字符串日期之间的所有字符串型日期 集合

//获取两个年月日格式的字符串之间的日期字符串,格式也是年月日,举例:("2013-3-5","2013-3-9")-->({'2013-3-5','2013-3-6','2013-3-7','201...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:写了个二分法查找函数
举报原因:
原因补充:

(最多只允许输入30个字)