def binary_search (sort_list,item) :
length = len(sort_list)
low = 0;
high = length -1
while low<=high :
mid = (high-low) // 2
current_item = sort_list[mid]
if current_item == item:
return item
if current_item < item :
high = mid-1
if current_item > item :
low = mid+1
return none
if __name__ == '__main__' :
sort_list = [1,3,5,9,18,21,30,44,62]
user_input = int(input("请输入查找的数字:\n"))
result = binary_search(sort_list,user_input)
print(result)
相关推荐
【二分查找】学习总结
二分查找: (1) 一般的二分查找: 例如:找球号问题: 在某一国度里流行着一种游戏。游戏规则为:在一堆球中,每个球上都有一个整数编号i(0 这就是普通的二分查找,把所有的球号存入ans[ ]数组了,从小到大排序,然后二分查找,假设共n个球吧(数组中0----n-1) 首先边界 fir=0,end=n-1,
如何写出正确的二分查找?——利用循环不变式理解二分查找及其变体的正确性以及构造方式...
序言 本文以经典的二分查找为例,介绍如何使用循环不变式来理解算法并利用循环不变式在原始算法的基础上根据需要产生算法的变体。谨以本文献给在理解算法思路时没有头绪而又不甘心于死记硬背的人。 二分查找究竟有多重要?《编程之美》第2.16节的最长递增子序列算法,如果想实现O(n2)到O(nlogn)的时间复杂度下降,必须借助于二分算法的变形。其实很多算法都是这样,如果出现了在有序序...
[算法|二分查找] 《有重复数字的升序数组的二分查找》
题目描述 请实现有重复数字的升序数组的二分查找: 给定一个 元素有序的(升序)整型数组 nums 和一个目标值 target ,写 一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1 示例1 输入 [1,2,4,4,5],4 输出 2 说明 从左到右,查找到第1个为4的,下标为2,返回2 示例2 输入 [1,2,4,4,5],3 输出 -1 示例3 输入 [1,1,1,1,1],1 输出 0 题解思路 第一想法:既然是二分查找,那就把二分查
二分查找之红蓝二分查找
/ 目标值在左半部分} else {left = mid;// 目标值在右半部分left : -1;// 返回最后一个满足条件的值的索引。
STM32CubeMx+stm32f407+FreeRTOS+LAN8720实现LWIP以太网UDP TCP数据收发功能
单片机实现LWIP的调试
Unable to negotiate with XXXX port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss
打开ssh_config此文件,滑动到最下面,新增自己git主机地址(这里我直接默认*)执行命令 git clone git@xxxxxxxxxxxxx.git。代码仓库已经添加了ssh公钥之后,克隆代码到本地时就报了这个问题。首先是找到git安装目录(根据自己安装时选项,找到这个目录)再进入ssh目录,找到 ssh_config 配置文件。配置完成后,保存配置文件后再次去clone代码。直接复制下面这一段到文件中最底部位置即可。然后进入 etc目录,找到ssh目录。终于可以克隆下来了。
【二分查找】有这一篇足够了
【二分查找】(折半查找)有这一篇足够了 1.二分查找是干啥的 2. 力扣中的一些练习题 2.1 二分查找 2.2 第一个错误的版本 2.3 搜索插入位置 2.4 在排序数组中查找元素第一个和最后一个位置 2.5x的平方根 2.6 有效的完全平方数 3.总结一下
国产射频直采收发器CX8242KA JESD204C调试
杭州诚芯公司的CX8242KA是国内开发的极少数支持JESD204C接口的高速AD、DA,Serdes具备支持接收和发送,并且速率可以到25Gbps,在国内属于领先水平。250M参考时钟输入,AD采样率2.5G,DA采样率10G,3收2发,主通道模式4,反馈通道模式1,基带采样率1250M,线速率20.625G,收发同时配置混频625M。CX8242KA的204C接口模式支持10种模式,在手册上都有说明。2、 支持TX信道编码,RX信道解码,提升健壮性。这里使用模式4,支持双通道模式,并且反馈开启。
优选算法《二分查找》
在之前的学习当中我们已经初步了解过了二分查找的整体逻辑以及二分查找,接下来我们在本篇当中将系统的来学习二分查找的使用方式以及在什么情况下可以使用二分查找。在之前的学习当中我们了解到的二分查找是要求在有序的数组当中当数组元素有序时才能使用,但是其实这只是二分查找最朴素的使用场景,接下来我们将学习更多的二分查找的使用场景。相信通过被本章的学习之后你会有所收获,一起加油吧!!!
保姆级教程:在RK3568开发板上手把手配置RMII百兆以太网DTS节点
本文提供了一份详细的RK3568开发板RMII百兆以太网DTS节点配置教程,涵盖基础概念解析、关键参数设置、实际操作步骤及常见问题排查。通过手把手指导,帮助开发者快速完成RK3568开发板的以太网配置,特别适合嵌入式系统开发者参考。
两级运算放大器设计与仿真
运算放大器(简称运放)是许多模拟系统和混合信号系统中的一个完整部分。各种不同复杂程度的运放被用来实现各种功能:从直流偏置的产生到高速放大或滤波。伴随者每一代 CMOS 工艺,由于电源电压和晶体管沟道长度的减小,为运放的设计不断提出复杂的课题。 运算放大器的设计可以分为两个较为独立的步骤,第一步是选择或搭建运放的基本结构,绘出电路结构草图,第二步就要选择直流电流,手工设计管子尺寸,以及设计补偿电路等等,然后在手工计算的基础上,运用模拟电路仿真软件对设计的两级运放进行仿真,并对电路进行后续的调试和修改。....
【算法】二分查找
本文总结了二分查找的特点、使用条件、和时间复杂度的分析,并且还将二分进行总结成三种情况,分别是朴素二分、查找左边界的二分和查找右边界的二分三种情况。通过若干到例题进行强化算法思维。
三相SST固态变压器详细设计案例
本案例针对400kVA、30kHz三相固态变压器(SST)开展详细设计,核心采用输入串联输出并联(ISOP)拓扑架构(模块化多电平矩阵变换器M3C简化版),重点完成高频变压器的参数计算、绕组设计、损耗分析及液冷温升验证,同时覆盖系统级架构设计、半导体损耗估算及整机效率优化,全流程基于当前电力电子技术可行性展开。
二分查找详解
二分查找是一种简单而高效的查找算法,在有序数组查找中有广泛的应用。插值查找和BST是二分查找的变种,它们在某些情况下能够提供更高的效率。理解这些算法的原理和实现方式,对于提高编程能力和解决实际问题具有重要意义。
2011-2024年间各省数字普惠金融指数数据(覆盖广度、使用深度和数字化程度)
2、指标:数字金融普惠指数、数字金融覆盖广度指数、数字金融使用深度指数、普惠金融数字化程度指数、数字金融使用深度指数下属的支付、保险、货币基金、信用服务、投资、信贷等分类指数。中国各省的数字普惠金融指数数据,从数字金融覆盖广度、数字金融使用深度和普惠金融数字化程度3个维度来构建数字普惠金融指标体系。数字普惠金融指数一共3个维度、33项具体指标。全套指数包含数字金融覆盖广度指数、数字金融使用深度指数和普惠金融数字化程度指数,以及数字金融使用深度指数下属的支付、保险、货币基金、信用服务、投资、信贷等分类指数。
嵌入式开发环境Vscode开发STM32单片机程序
STM32单片机非常强大,大多数教程都是使用 keil 编译器,keil 是收费的而 gcc 是开源免费的。这里介绍一些使用 gcc +开发单片机程序的经验。(这里不解释 gcc 是什么)。
详解二分查找
一.为什么要使用二分查找 当有一个排好顺序的数组,我们需要知道我们要找的值是否在当前数组中,那么我们就需要自己实现一个查找的方法来进行实现,那么如果我们找的数在最后一个位置n处,假设这个n非常大,那么我们要是一次一次进行比较的话就要比较n次,这样就会显得非常慢,那么有没有一种相较于普通查找速度更快的方法吗,那就是二分查找。 二.二分查找的解释 二分查找:也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。
jdk-8u144-linux-x64.tar.gz.
该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包
[Algorithm][二分查找][二分查找OJ][搜索插入位置] + 二分查找原理 +二分查找模板
[Algorithm][二分查找][二分查找OJ][搜索插入位置] + 二分查找原理 +二分查找模板
SAP B1中文培訓教材_SDK
公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说
IEM模型,地表粗糙度模拟
利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟
二分查找最坏查找次数_快速入门二分查找
二分查找使用二分查找的前提模板常见的二分查找应用比如猜数字游戏。// 二分查找适用于有序的数组 // 这个一个最简单的二分查找算法,前提是数组中不存在重复元素 function binarySearch(arr, target) { if (arr && Array.isArray(arr)) { if (!arr.length) return -1 let left =...
廖雪峰Python教程[完整版]
廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白
c++二分查找
由于此时只剩下两个数了,所以我们不再二分了,直接判断A[8]是否等于17,或者A[9]是否等于17即可。//表示要在A[1]至A[N]范围查找x。因为我们要查找的数是3,小于A[mid],所以我们下次要在A[L]至A[mid]范围内查找,//查询数组A是否包含x。因为要查找的数是17,大于A[5],所以我们应该在A[5]至A[10]这一段查找,令L=1, R=10, 表示我们用在A[1],A[2],...A[10]里面查找。1、当要查找的数小于A[1]或者大于A[N],返回"no",否则进入二分查找过程。
二分查找最坏查找次数_二分查找 事半功倍
前言:“Simplicity is the soul of efficiency.”简洁是效率的灵魂。-- Enda Kenny, TaoiseachYou clicked onthe third article written by ADOSCIE.你激动的点开了ADOSCIE的第三篇文章。But you realized that you aren’t familiar with ...
二分查找的平均查找长度_二分查找总结
简介一般而言,当一个题目出现以下特性时,你就应该立即联想到它可能需要使用二分查找:待查找的数组有序或者部分有序要求时间复杂度低于O(n),或者直接要求时间复杂度为O(log n)二分查找有很多种变体,使用时需要注意查找条件,判断条件和左右边界的更新方式,三者配合不好就很容易出现死循环或者遗漏区域,使用二分查找解决的问题类型可以总结为:标准的二分查找二分查找左边界二分查找右边界二分查找左右边界标准二...
2541



被折叠的 条评论
为什么被折叠?



