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

相关文章
|
10月前
|
C语言
对链表使用插入排序的C语言实现示例
对链表使用插入排序的C语言实现示例
|
5月前
|
搜索推荐 C语言 C++
【C语言】指针篇-精通库中的快速排序算法:巧妙掌握技巧(4/5)
【C语言】指针篇-精通库中的快速排序算法:巧妙掌握技巧(4/5)
|
10月前
|
存储 测试技术 C语言
LeetCode | 100.相同的树(C语言版)
LeetCode | 100.相同的树(C语言版)
83 0
|
测试技术 C语言
C语言题解 | 移除元素(多种解法)
这是力扣上的一道简单题,需求是 移除数组中的指定元素,并且要求 空间复杂度为O(1) ,即原地移除,我们可以用顺序表中的任意位置删除的思想解决这个题,符合题目要求,当然还有其他解法。
50245 1
C语言题解 | 移除元素(多种解法)
|
C语言
C语言刷题系列——9.在数组中查找指定元素
C语言刷题系列——9.在数组中查找指定元素
253 0
|
算法 C语言
C语言---插入排序(直接插入和希尔)
C语言---插入排序(直接插入和希尔)
167 0
|
存储 C语言 C++
栈和队列OJ题思路分享之栈和队列互换(C语言实现)
我们紧接上一章的刷题分享来把后面两个题给搞定,它们分别是: 1. 用队列实现栈: 力扣225题— 2. 用栈实现队列: 力扣232题. 如果你还没有自己实现过栈和队列,或者没有栈和队列的现成结构,请跳转栈和队列详解,或者去我的码云自取. 这里的题目需要使用自己实现过的结构!
|
C语言
二叉树的概念及三种遍历方法(C语言)
本篇博文带你进入二叉树宇宙!从理论落地到代码实现,真正详解二叉树,后续会继续更新二叉树的内容及相关练习题。
333 0
二叉树的概念及三种遍历方法(C语言)
|
机器学习/深度学习 文件存储
VB编程:对数组进行二分查找-29
VB编程:对数组进行二分查找-29
217 0
|
人工智能 文件存储
VB编程:数组中插入新的数组元素-26
VB编程:数组中插入新的数组元素-26
208 0