分治算法-二分法

二分搜索,也称二分查找,是一种高效的查找方法,常用于有序线性表。查找过程中先确定中间位置,通过比较目标值与中间值来不断缩小查找范围。当目标值等于中间值时查找成功,否则根据比较结果在左或右子表中继续查找。Java实现二分查找的过程涉及多次对中间位置的判断和范围调整。这种算法常见于数据库索引查找。
摘要由CSDN通过智能技术生成

每日一言 : 当我们真正热爱这世界时,我们才真正生活在这世上。——泰戈尔

二分搜索

什么是二分搜索

二分搜索又叫二分查找,是一种效率较高的查找方法,比如数据库的索引查找方式(哈希索引除外)就是一种二分、三分或者多分查找的算法,分的多少和索引结构有关。

要求线性表为有序表,并且要用向量作为表的存储结构,二分搜索的基本思想是先确定待查找记录所在的范围,然后逐步缩小范围,直到找到or找不到该记录位置。

二分查找的步骤如下

  1. 先确定中间位置:middle=(left+right)/2
  2. 将待查找的key值和data[middle].key值相比较,相等则查找成功并返回该位置,否则重新确定查找空间,继续二分查找,具体方法如下:
    • 如果data[middle].key大于key,由于data为有序线性表,可以知道data[middle->right].key全部都大于key,因此可以推断,若数据表中存在关键字符合的key,那么一定位于【left->middle】子表范围区间内
    • 反之亦然,data[middle].key 小于key,若数据表中存在关键字符合的key,那么一定位于【middle–》right 】子表范围区间内

java 实现如下

	public static void main(String[] args) {
   
        int [] array = {
   1,2,3,4,5,6,7,8,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小狐狸和小兔子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值