二分查询

技术二分查询 二分查询二分查询:package com.cc;/** * @Author: cc * @Create: 2021/12/20 * 二分查询实现步骤: * 1.前提:有已排序数组A (假设

二进制查询

二分查询:

package com . cc;

/**

* @Author: cc

* @Create: 2021/12/20

*二分查询实现步骤:

* 1.前提:已经排序了数组A(假设已经排序)

* 2.定义左边界l .右边界R,确定搜索范围,循环执行二分搜索法(3。4步)

* 3.得到中间指标M=Flor((L R)/2)=存在整数超出最大范围的问题,优化为移位运算:M=(L R)1;

* 4.将中间索引的值A[M]与要搜索的值T进行比较。

* A[M]==T表示找到,返回中间索引。

* A[M] T,中间值右边的其他元素都大于T,所以没必要比较。在中间索引左侧查找,设置M- 1为右边界,再查找。

* A[M]T,中间值左侧其他元素均小于T,无需比较。在中间索引的右边找,把M 1设为左边距,再找。

* 5.当没有找到LR时,循环应该结束。

*/

公共类BinarySearch {

公共静态void main(String[]args){ 0

int [] array={1,3,5,6,12,53,65,77,98,123 };

int target=53

int id=binarysearch(数组,目标);

system . out . println(id);

}

public static int binary search(int[]a,int t){ 0

//定义左边距L、右边距R和中间索引m

int l=0,r=a.length - 1,m;

while(l=r){ 0

//计算中间索引(循环内)

m=(l r)1;//Shift操作1相当于除以2。

if(a[m]==t){ 0

返回m;

}否则如果(a[m]t)}

l=m1;

}else {

r=m-1;

}

}

返回-1;

}

}

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/154986.html

(0)

相关推荐

  • 如何模拟请求工具curl的异常处理

    技术如何模拟请求工具curl的异常处理小编给大家分享一下如何模拟请求工具curl的异常处理,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!日常开

    攻略 2021年10月19日
  • golang 如何识别文本格式(golang读取txt文件一次读取一行)

    技术Golang怎么读取单行超长的文本这篇文章主要介绍“Golang怎么读取单行超长的文本”,在日常操作中,相信很多人在Golang怎么读取单行超长的文本问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望

    攻略 2021年12月22日
  • 读物列表

    技术读物列表 读物列表title: 读物列表
    date: 2020-12-17 11:31:08
    tags: 杂谈科普研究、科技爱好者周刊[科普研究][http://kpyj.crsp.org.cn/c

    礼包 2021年10月19日
  • 怎么用linux批量上传文件到多台机器上

    技术怎么用linux批量上传文件到多台机器上这篇文章主要讲解了“怎么用linux批量上传文件到多台机器上”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用linux批量

    攻略 2021年11月30日
  • MySQL基础SQL入门

    技术MySQL基础SQL入门 MySQL基础SQL入门MySQL基础SQL入门
    1. 数据库的基本概念
    1.1 什么是数据库1. 数据库(DataBase) 就是存储和管理数据的仓库
    2. 其本质是一个

    礼包 2021年12月1日
  • DNSlog注入测试

    技术DNSlog注入测试 DNSlog注入测试之前提到的时间盲注,虽然用途比较广泛,但其查询耗时较长;且盲注都需要发送大量请求,容易被WAF拦截。
    此时,我们就要用到DNSlog注入——一个可以以较少的

    礼包 2021年11月1日