VB编程:对数组进行二分查找

简介: VB编程:对数组进行二分查找

程序代码

Option Explicit

Dim myarray(100) As Integer           '定义数组,下标0-100,数组元素为101个


Private Sub Command1_Click()

   Dim low, high, mid, n As Integer

   Dim found As Boolean

   low = 0

   n = 0

   high = UBound(myarray)

   found = False

   mid = CInt((high + low) / 2)      '转换为整型,小数部分四舍五入,避免下标出现小数

   Do While Not found And (high >= low)

       n = n + 1

       If CInt(Text1.Text) = myarray(mid) Then   ''查找值和当前中间值比较,相等输出

           found = True

           Label1.Caption = "查询次数:" & n & vbCrLf & _

                            "查询数值:" & myarray(mid) & vbCrLf & _

                            "数组下标:" & mid

           Exit Do

       ElseIf CInt(Text1.Text) < myarray(mid) Then  '查找值和当前中间值比较,小了

           high = mid - 1

       Else                                   '查找值和当前中间值比较,大了

           low = mid + 1

       End If

   mid = CInt((high + low) / 2)

   Loop

End Sub


Private Sub Form_load()

Dim i As Integer

   For i = 0 To UBound(myarray)                '给数组赋值

       myarray(i) = i

       Print myarray(i)

   Next i

End Sub


学习心得

1、二分法查找的思想就是:先取中间值作比较,看大了还是小了,大了就往下取数,小了就往上取数。这样逐步缩小查找范围,就不用每个数都去做比较。适用于有序数组,确实能提高计算效率,是一个很不错的思维方式。

相关文章
|
2月前
|
Java C语言
用Java(C语言也可以看)实现冒泡排序和折半查找(详细过程图)+逆序数组
用Java(C语言也可以看)实现冒泡排序和折半查找(详细过程图)+逆序数组
30 0
|
6月前
|
C语言
【C语言】自定义函数对有序数组的二分查找,以及对二分查找会出现的问题进行补充
【C语言】自定义函数对有序数组的二分查找,以及对二分查找会出现的问题进行补充
26 0
|
7月前
|
Java 程序员 API
Java语言特点 && 8种基本数据类型 && 标识符等练习题 && 插入/希尔/选择/堆/冒泡/快速/归并/计数排序
Java语言特点 && 8种基本数据类型 && 标识符等练习题 && 插入/希尔/选择/堆/冒泡/快速/归并/计数排序
32 0
|
12月前
|
存储 算法
零基础VB教程035期:递归算法
零基础VB教程035期:递归算法
128 0
|
算法 C语言 索引
09【C语言 & 趣味算法】再识:折半查找(二分查找):基本思想、程序流程图及完整代码、附:顺序查找
09【C语言 & 趣味算法】再识:折半查找(二分查找):基本思想、程序流程图及完整代码、附:顺序查找
09【C语言 & 趣味算法】再识:折半查找(二分查找):基本思想、程序流程图及完整代码、附:顺序查找
VB语言基础重要知识点21(冒泡排序法)
VB语言基础重要知识点21(冒泡排序法)
129 0
VB语言基础重要知识点21(冒泡排序法)
|
算法
【C初阶】数组补充,冒泡排序
数组作为函数参数 冒泡排序
63 0
【C初阶】数组补充,冒泡排序
|
算法 JavaScript 前端开发
JavaScript 进阶第三章(数组排序-冒泡算法)
JavaScript 进阶第三章(数组排序-冒泡算法)
72 0
|
机器学习/深度学习 文件存储
VB编程:对数组进行二分查找-29
VB编程:对数组进行二分查找-29
185 0
|
人工智能 文件存储
VB编程:数组中插入新的数组元素-26
VB编程:数组中插入新的数组元素-26
158 0