二分查找的实现

进阶:二分查找的函数实现 关于二分查找的基础请见我之前的博客。二分查找的实现 今天呢,我就和大家一起聊聊二分查找的函数实现。 随着我们水平的提升,我们越来越多的使用函数,使用函数不仅可以使我们的代码变得简洁,还可以使程序使程序流程结构化。 ... 阅读详情

C++

#include<bits/stdc++.h>
using namespace std;

int binary_search( int arr[], int num, int item ){
	int low = 0;
	int high = num-1;
	while( low <= high ){
		int mid = (low + high)/2;
		int midValue = arr[mid];
		if( midValue==item ){
			return mid;
		}
		if( midValue<item ) {
			low = mid+1;
		} else {
			high = mid-1;
		}
		// cout<<mid<<" "<<low<<" "<<high<<endl;
	}
	return -1;
}

int main(){
	int arr[] = { 1, 3, 5, 7, 9 };
	int item = 2;
	int index = binary_search( arr, sizeof(arr) / sizeof(arr[0]), item );
	if( index == -1 ){
		cout<<"None"<<endl;
	} else {
		cout<<index<<endl;
	}
	return 0;
}

JS

function binary_search( arr, item ){
	let low = 0;
	let high = arr.length - 1;
	while( low<=high ){
		let mid = Math.floor(( low + high )/2)
		if( arr[mid] == item ){
			return mid;
		}
		if( arr[mid]<item ){
			low = mid+1;
		} else {
			high = mid-1;
		}
		// console.log( mid,low,high )
	}
	return "None";
}

let arr = [1,3,5,7,9];
console.log( binary_search(arr,3) )
console.log( binary_search(arr,5) )
console.log( binary_search(arr,2) )
console.log( binary_search(arr,-1) )
二分查找实现及其应用 二分查找,应用广泛,将n个元素分成个数大致相同的两半,取a[n/2]与欲查找的x作比较,如果x=a[n/2]则找到x,算法终止。如果x<a[n/2],则我们只要在数组a的左半部继续搜索x(这里假设数组元素呈升序排列)。如果x>a[n/2],则我们只要在数组a的右半部继续搜索x。 阅读详情

相关推荐

macOS安装Cplex+yalmip

macOS安装Cplex+yalmip

DS 4248

二分查找的5种实现--Java版

基础版,改动版,平衡版,java中的实现,对重复元素的处理(两种),力扣练习题链接,代码均以java实现

Cqy180的博客 5244

LangChain4j 开发

市场上主流的 Java 调用大模型的工具库有两种:LangChain4j 是一个 面向 Java 的开源框架,用于构建 基于大语言模型(LLMs) 的应用程序。它是 LangChain(Python 生态中非常流行的 LLM 应用框架)的 Java 实现,旨在让 Java 开发者能够轻松地集成和使用各种 LLM 服务,快速开发 智能聊天机器人、智能搜索、文档问答、Agent系统 等 AI 驱动的应用。官网文档:https://docs.langchain4j.dev/。引入依赖(JDK17 及以上): 构建

m0_62943934的博客 2794

二分查找(Binary Search)及常见的具体实现(C++和Python)

二分查找(Binary Search)及常见的具体实现方式

cnds123的专栏 1643

CANOE仿真someip报文配置说明

利用canoe测试车辆控制器someip报文收发的步骤

AUTOSAR架构汽车软件开发 1万+

php环境如何实现国密SM2相关功能

🏆本文收录于《优快云问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!

**My Coding Family** 1616

二分查找的多种实现方式及本质解析(c++实现 + 例题)

三种方式的二分查找:闭区间二分,左闭右开二分, 开区间二分,二分查找的各种大于小于等关系的判定!! 任何关系都可以由>= 的关系表示 leetcode例题:34. 在排序数组中查找元素的第一个和最后一个位置解析

ylh的博客 2947

关务管理项目专题:SAP 与关衡关务系统的进出口报关业务集成(1)需求和方案整理

一个拥有进出口业务的企业就需要报关,而关务系统就是用来辅助企业日常进出口报关,同时数字化、合规化报关业务的有效工具。本章属于关务管理项目专题系列,以 SAP 与关衡关务系统的进出口报关业务集成为实例,详细讲解报关业务的需求和方案整理。

SAP李斌,本人承诺所有原创文章均不使用任何AI生成技术,请大家放心阅读。 2076

二分查找【多种方法+图解】

二分查找

Jambo!的博客 6061

【Nginx学习】5步揭秘Nginx邮件代理模块:邮件代理服务器的功能与实现

Nginx的邮件代理模块(Mail Proxy Module)允许Nginx作为邮件代理服务器,支持SMTP、POP3和IMAP协议。这使得Nginx可以作为一个高性能的邮件网关,用于过滤垃圾邮件、病毒扫描、负载均衡等任务。简单来说,Nginx在这里就像是一个邮递员,负责将邮件从发件人手中安全、快速地送到收件人手中。通过上述的解析,我们可以看到Nginx在邮件代理模块中的设计和实现。从配置解析、连接处理,到协议处理、SSL/TLS加密和日志记录,每一步都至关重要。

java专栏 1314

别再无脑调打码平台了!聊聊 ddddocr 在爬虫验证码识别中的真实边界

ddddocr是国产开源社区的优秀成果,它大幅降低了验证码识别的入门门槛。工具的自由不等于工程的自由。真正的能力不在于“会不会调库”,而在于能否准确判断工具的适用边界、构建鲁棒的容错机制、并在成本与效果之间做出理性权衡。下次当你准备在爬虫中加入验证码识别时,不妨先问自己:这个站点的验证码类型是否在ddddocr的能力圈内?我的预处理是否针对该站点做过专项调试?我的失败重试和监控机制是否完备?如果三个问题都能肯定回答,那么ddddocr就是你的利器;如果有任何一个犹豫,请先补齐短板再上路。评论区交流:你用。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1281

【C语言】二分查找的实现

如果我要找的元素在这个序列中并,没有出现 那么就会出现left>right的情况(可以按照上述的分析方法分析)所以我们如果想要准确查找出被查找的元素,就应该还需要继续进行这样的查找,所以我们将上述过程放在一个循环中。在我们日常生活中,经常会遇到查找一样东西的情景,比如在一个班的学生成绩中找到xx分对应的人。考虑最坏的情况,我们所要找的元素正好处在数组的最后一个,那就意味着我们的。首先二分查找的前提是被查找的数组必须是。被查找的元素,那么k就只能在中间元素的。被查找的元素,那么k就只能在中间元素的。

m0_72670269的博客 3656

【项目典型案例】-2-任意帧/特定帧CAN唤醒对ECU首帧/启动时间的影响

任意帧/特定帧CAN唤醒对ECU启动时间的影响

「汽车电子助手」的博客 1943

二分查找实现 C++

二分查找递归实现 # include<iostream> using namespace std; int binary_search(int arr[],int low , int high, int key) { """ 通过递归二分查找 查找元素""" for(r>=1){ int mid = low + (high-low)/2; //若元素在中间 if...

wehung的博客 4376

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

java实现二分查找

java实现二分查找

程序员阿龙的博客 1万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

二分查找的简单实现

这天,六花来到一家公司面试,面试官说:“给你一段有序整型数组和一个值,你就写一道简单的查询返回下标吧。”你一听,嘴都笑裂到后脑勺了。拿出键盘就敲下了一段for循环遍历查询。面试官一看,直接不停点头并语重心长的对你说:“小伙子,我看你骨骼..水平不错!回去等消息吧,我看你机会很大的!”你听了后,便激动的回到家等待消息心想“区区面试,不过如此。。。”从此,再也没有了下文。二分查找最重要的两个点,就是循环条件和后续的区间赋值问题。两者是相互联系,相互影响的,所以就需要两者统一,如果两者不统一,就会出现问题。

weixin_58403235的博客 277

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

二分查找实现

看了“只有10%程序员能正确实现二分查找算法“这篇文章,闲着无聊,就实现一下他所说的正确的二分算法; 其实说穿了为什么只有10%的程序员会写错,只是因为没有考虑一些意外情况罢了; 思想: 二分查找能解决问题:预排序数组的查找 1.使用泛型将二分查找的对象泛化. 2.考虑以下几种意外情况: 如果数组为null,则抛异常; 如果没有找到,则返回-1; 其实我也不清楚

xiazdong 1721

Python实现二分查找

二分查找

m0_51972075的博客 2757

c++实现二分查找

#include<iostream> using namespace std; void test(int *arr, int low, int high, int key) { int mid = 0; while (high >= low) { mid = (high + low) / 2; if (arr[mid] == key) { cout << "找到了数字" << arr[mid] << endl; ret

orange_monkey的博客 1088

二分查找 递归实现

#include <iostream> #include<iomanip> using namespace std; int find(int left, int right, int a[],int k) { int mid = (left + right) / 2; if (left <= right) { if (k > a[mid]) { ...

终极香蕉大菠萝的博客 5287

python递归实现二分查找_python二分查找算法的递归实现

本文实例讲述了python二分查找算法的递归实现方法。分享给大家供大家参考,具体如下:这里先提供一段二分查找的代码:def binarySearch(alist, item):first = 0last =len(alist)-1found = Falsewhile first lst[mid]: #找后半部分#print(lst[mid:])returnbinSearch(lst[mid:], ...

weixin_39865440的博客 878

简单实现一下二分查找

我们昨天大致地讲了一下二分查找 的概念,今天我们要来学习一下如何用python代码把二分查找简单地实现一下。 好的,废话不多说,直接看代码: def LSF(seq, number, lower, upper) if lower == upper: assert number == seq[upper] return upper ...

dipaxieshou4224的博客 153

python实现二分查找算法_python实现二分查找算法

二分查找算法也成为折半算法,对数搜索算法,一会中在有序数组中查找特定一个元素的搜索算法。搜索过程是从数组中间元素开始的如果中间元素正好是要查找的元素,则搜索过程结束;如果查找的数大于中间数,则在数组的前一半查找,否则,在后一半查找。直到找到相应数据止。该算法的的复杂度为O(log n),相比其他算法优势还是比较明显的。二分查找法的O(log n)让它成为十分高效的算法。不过它的缺陷却也是那么明显...

weixin_39684495的博客 663
上一篇: tomcat端口作用
下一篇: 选择排序法的实现
林毅洋
博客等级 码龄15年 121粉丝 128原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值