二分查找是一种极其高效、简练的查找算法,它不仅简单,易用,而且还非常的高效。相对于顺序查找,二分查找在效率是呈现指数性提升,数据量越大,越能体现出二分查找法的优势。

二分查找的查找过程是:先确定待查找元素所在线性表的范围,然后逐步缩小范围直到找到(或找不到)该元素为止。

二分查找算法要求数据必须是有顺序的排序,即要么是升序排列,要么是降序排列。因此,在使用二分查找法前,需要将数组处理为有序数组。

案例说明

本案例演示了如何利用二分查找算法在一个有序数组中查找指定内容。

关键技术

利用do循环结构语法,每次循环时查找一个中间值,并判断是否是要找的内容,如果是则结束循环,否则修改中间值,继续查找,直到找到指定内容,或者查询完毕。

设计过程

步骤一

按照下图完成程序界面的搭建。

步骤二

首先,需要在代码区顶部声明一个全局数组arr(1000)

Option ExplicitDim arr(1000) As Long

步骤三

然后,编写窗体加载的代码,在这里我们为arr数组赋予一个初始的内容。

Private Sub Form_Load()    Dim i As Long    '给数组分配内容    For i = 1 To 1000        arr(i) = i * 2    Next iEnd Sub

步骤四

接着,我们编写查询按钮的代码。

Private Sub Command1_Click()    Dim low%, hight%, mid%    Dim flag As Boolean  '是否查询到内容的标记    '给下标、上标和中间值初始值    low = 1    hight = 1000    mid = (low + hight) / 2    flag = False    '开始查找    Do While (flag = False And hight >= low)        If arr(mid) = Text1 Then            MsgBox "找到该数,下标为:" & mid            flag = True            Exit Do        ElseIf arr(mid) > Val(Text1) Then            hight = mid - 1        Else            low = mid + 1        End If        mid = (low + hight) / 2        DoEvents    Loop    If flag = False Then MsgBox "未查询到该数"End Sub

步骤五

最后,我么来进行测试。运行程序,输入一个要查找的数值,然后点击查询按钮。

总结

数组在VB中具有非常非常重要的作用,对于处理数据具有绝对的优势,因此掌握数组的基本操作,尤其是增加、删除和插入以及查询都是相当重要的。小伙伴们一定要勤加练习哦。

友情提示:

添加QQ群 一起学VB 1138946358 可第一时间获取本案例源代码~~

vb获取数组长度_如何实现数组的二分查找相关推荐

  1. linux c 指针数组定义数组长度,C/C++指针数组和 迪士尼源码搭建下载 数组指针...

    迪士尼源码搭建下载[ 指针数组 : 存放指针的数组 其定义抽象为:指向变量的类型 * 数组名称 [数组长度]. int *p[2]; p[0] = NULL; p[1] = NULL; 2. 数组指针 ...

  2. 函数中参数有数组时注意的小问题(不一定要传递数组长度,不用返回数组,可以在函数中改变数组元素值)

    函数中参数有数组时注意的小问题: 1.不一定要传递数组长度 2.不用返回数组,可以在函数中改变数组元素值 通过下面这个小例子来验证: #include<iostream> #include ...

  3. c++获取数组长度_灵魂拷问:Java如何获取数组和字符串的长度?length还是length()?...

    限时 1 秒钟给出答案,来来来,听我口令:"Java 如何获取数组和字符串的长度?length 还是 length()?" 在逛 programcreek 的时候,我发现了上面这个 ...

  4. delphi 获取数组长度_Java中的数组(基础篇六)

    在学习数组之前我们先来了解一下容器,生活中的容器比如水杯是用来装水的,衣柜是装衣服的,Java中的容器是用来存储数据的,将多个数据存储到一起,每个数据称为该容器的元素. 数组:数组就是存储数据长度固定 ...

  5. vue 数组长度_深入理解Vue的数据响应式

    什么是响应式 当一个物体对外界的变化做出反应就叫响应式的,如"我打你一拳,你会喊疼". Vue的数据响应式 就是对数据做出改变时,视图上也会做出相应的变化. 举个例子 1const ...

  6. c++ 一维数组长度_每天一点C / 一维数组和指针

    哈喽,我是老吴,继续记录我的学习心得. 每天一点系列是我对微习惯的践行.现在能做到每天一点 C,将来就会有更多的每天一点系列,没人规定嵌入式软件工程师就只能学习 C 语言和折腾 Linux,不要给自己 ...

  7. python中对比数组长度_在Python中检索数组长度的首选方法

    python中对比数组长度 The __len__() is a method on container types. However, python also provides another op ...

  8. python 二维数组长度_谈一谈多维数组

    谈 一 谈 多 维 数 组 在各种语言中,都提供了多维数组.而多维数组又是很让人迷惑的一个语法结构.今天给大家聊一下多维数组使用中的一些问题. 这里,以Python和IDL为主讲解. 多维数组的概念 ...

  9. java 数组 内存_图解Java数组的内存分配

    1. Java数组是静态的 Java是静态语言,所以Java的数组也是静态的,即:数组被初始化后,长度不可变 静态初始化:显式指定每个数组元素的初始值,系统决定数组长度 String[] books ...

最新文章

  1. 华为腾讯百度众安微众360大咖齐聚,2019中国区块链开发者大会首批议程曝光!...
  2. java 中pc寄存器的作用_既然有PC寄存器,栈帧里的返回地址的作用是什么?
  3. ABAP和Java里关于DEFAULT(默认)机制的一些语言特性
  4. 太强了!Kaggle竞赛宝典方案汇总
  5. python获取页面隐藏元素_selenium操作隐藏的元素(python+Java)
  6. 面对imbalance data的时候
  7. c语言中结构体头文件是什么,函数形参里有结构体指针,为什么在头文件生
  8. Win7 64bit IIS无法访问ACCESS数据库解决方案
  9. FlashDevelop 遇到的Process not responding 问题
  10. AFNetWorking网络库教程
  11. [机器学习] Ubuntu 软件源更新(校园网)以及问题总结
  12. Vue 项目静态化打包 seo优化
  13. 计算机配置动态硬盘,【转】基本磁盘动态磁盘GTP磁盘MBR磁盘RAID阵列磁盘的区别(一)...
  14. 小团队如何提高工作效率
  15. Concatenated Multiples(思维,数学)
  16. 图像处理——简单浮雕效果和倒影效果实战
  17. 真爱永远不是遇见的,真爱是养成的
  18. 关于线性条形码符号的解读(二)
  19. C# 三菱FX PLC XYS读写,串口读写
  20. 师徒机制及其实施方案

热门文章

  1. 【一针见血】 JavaScript this
  2. 一分钟了解阿里云产品:RDS概述
  3. 使用手机游戏的新闻推送
  4. Linux系统软件包的管理   3月30日课程
  5. Xcode 的正确打开方式——Debugging
  6. 2013年。。。。。。
  7. 读取Android系统的多媒体库
  8. Windows7休眠状态下载技巧攻略
  9. js 调用服务器端方法总结
  10. 如果您不将Docker用于数据科学项目,那么您将生活在1985年