算法之二分查找法
🕗 发布于 2024-10-20 01:05 数据结构
需求描述:
在有序数组A内,查找值target
如果找到返回索引
如果找不到返回-1
算法实现描述
前提条件:给定一个含有n个元素的有序数组A,满足A0≤A1≤A2≤···An-1,一个待查值target
实现步骤: 1、创建i = 0, j = n - 1;
2、如果i > j,结果查找,没找到
3、设置m = floor((i+j) / 2),m为中间索引,floor是向下取整(≤(i + j) / 2的最小整数)
4、如果target < Am 设置 j = m - 1,跳到第二步
5、如果Am < target 设置 i = m + 1, 跳到第二步
6、如果Am = target,结束查找,找到了
代码实现
/***
* 二分查找法实现
* @param args 数据
* @param target 查找目标
* @return 找到返回索引
* 找不到返回-1
*/
public static int binarySearchBasic(int[] args, int target) {
int i = 0, j = args.length - 1;//设置指针和初始值
while (i <= j) {//范围内有东西
int m = (i + j) / 2;
if (target < args[m]) {//目标在左边
j = m-1;
} else if (args[m] < target){//目标在右边
i = m + 1;
} else {
return m;//找到数据的id
}
}
return -1;
}
原文地址:https://blog.csdn.net/Dragonlongbo/article/details/143030626
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!
-
Libevent源码剖析之reactor
是一种事件驱动的并发处理模式,常用于网络服务器和事件循环系统中。它主要的功能是通过或者处理I/O操作,避免阻塞,并且能够高效处理的事件。,以下摘自原文:Theis ansingleor, whichf
阅读更多2024-10-20
-
IDEA如何配置自己的maven和maven设置阿里云仓库
我们在使用IDEA开发Java应用时,一般是需要配置maven仓库的,那么我们应该如何配置呢?此外,默认的maven仓库下载速度很慢,我们一般可以配置阿里云或者华为云仓库,这个又应该怎么配置呢?然后,
阅读更多2024-10-20
-
84.【C语言】数据结构之顺序表的头部插入和删除
注意头插时,元素会逐个向后移动,因此要先进行容量检查,再移动元素,最后不要忘记为有效元素个数size+1;头插N个元素的时间复杂度为O(N^2),运行效率不高,尽量避免头插,使用尾插(尾插N个元素的时
阅读更多2024-10-20
-
安装gpu版本的tensorflow-2.11
参考:https://medium.com/nerd-for-tech/installing-tensorflow-with-gpu-acceleration-on-linux-f3f55dd15a9
阅读更多2024-10-20
-
英语
给出英语面试的常见问题和答案当然可以。以下是一些英语面试中常见的提问及其参考答案:Can you introduce yourself? 答:Certainly. My name is [Your N
阅读更多2024-10-20
-
LiveKit 在Kylin Server V10 下离线安装和配置
首先简单介绍了 LiveKit,其次介绍了在 Kylin Server V10 下设置 Go 语言环境,编译 LiveKit 服务端以及 LiveKit 网页客户端的部署。
阅读更多2024-10-20
-
数据分箱:决策树得到特征的分箱区间后后怎么映射到原数据中?
在这个例子中,我们将原数据中的每个值与分箱区间进行比较,确定其所属的分箱,并将分箱结果映射回对应的区间描述,存储在新的列中。如果一个值不匹配任何分箱,可以根据需要进行特殊处理。
阅读更多2024-10-20
-
fanuc远程PNS启动
PNS & RSR区别 前者是8bit=255 个程序 后者是bitN对应8个程序。
阅读更多2024-10-20
-
HTTP 请求的请求体是什么
请求体是 HTTP 请求的重要组成部分,用于传输实际的数据内容。根据不同的应用场景和数据格式,可以选择适当的内容类型来组织请求体中的数据。在 Web 开发中,正确处理请求体中的数据对于实现 RESTf
阅读更多2024-10-20
-
Python PyQt5应用程序实现中英文切换
在Python中使用PyQt5实现应用程序的中英文切换功能,可以通过国际化(i18n)和本地化(l10n)的技术来实现。以下是一个详细的教程,包括UI界面多语言切换和程序内部字符串多语言切换两部分。
阅读更多2024-10-20