首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当未找到目标时,我的二进制搜索函数返回none,尽管我将返回值指定为-1

对于给定的问题,我可以给出以下答案:

该问题描述了一个二进制搜索函数,当未找到目标时,函数返回的值是none,尽管该函数的返回值应该是-1。

二进制搜索是一种查找算法,用于在有序数组或列表中查找特定元素的位置。它通过重复地将目标值与数组的中间元素进行比较,并根据比较结果将搜索范围缩小一半,直到找到目标值或确定目标值不在数组中。

该函数的问题在于,当未找到目标值时,返回值被指定为none,而不是应该返回的-1。这可能导致使用该函数的其他代码逻辑错误。

为了解决这个问题,我们应该将函数的返回值指定为-1,以便与二进制搜索算法的约定相符。

以下是一个示例的二进制搜索函数的代码:

代码语言:txt
复制
def binary_search(arr, target):
    low = 0
    high = len(arr) - 1

    while low <= high:
        mid = (low + high) // 2
        if arr[mid] == target:
            return mid
        elif arr[mid] < target:
            low = mid + 1
        else:
            high = mid - 1

    return -1

在这个示例中,函数接受一个有序数组arr和目标值target作为参数,并返回目标值在数组中的索引。如果未找到目标值,则返回-1。

该函数的时间复杂度为O(log n),其中n是数组的长度。它是一种高效的查找算法,常用于需要快速查找有序数据的场景。

如果您在使用腾讯云,我推荐您使用腾讯云的云服务器(CVM)来运行您的二进制搜索函数。云服务器是一种灵活、可扩展的云计算服务,可以提供高性能的计算资源。您可以通过以下链接了解更多关于腾讯云云服务器的信息:腾讯云云服务器

请注意,本回答仅供参考,并没有提及任何具体的云计算品牌商,如有需要请自行参考相关资料。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Python open函数详解「建议收藏」

b代表以二进制方式读写,读写时以字节为单位,可以用于读写所有类型的文件。这里注意一下,若使用t方式,则必须将encoding参数指定为除None以外的值。...buffering若为1,则表示缓冲区采用行缓冲区,即只能放一行数据,遇到换行符即清空缓存,将数据写入磁盘。buffering为大于1的正整数时,这个正整数即代表缓冲区的大小,单位为字节。...mode参数采用文本方式的情况下,若encoding指定为None,则编码为locale.getpreferredencoding(False)这行代码的返回值。...在Windows下,这行代码一般返回值为cp936,。cp936指的就是gbk。 errors:编解码报错的处理模式,可选,str类型,默认为None。...用于设置当open函数发生编码或解码错误时的处理方式。注意,仅当mode参数采用文本方式时有效,二进制方式下不可指定。

2K20

神了,Excel的这个操作我今天才知道

2 - 执行依赖于 lookup_array 按升序排序的二进制搜索。 如果未排序,将返回无效结果。 -2 - 执行依赖于 lookup_array 按降序排序的二进制搜索。...table_array:必选参数,VLOOKUP 在其中搜索 lookup_value 和返回值的单元格区域。...col_index_num:包含返回值的列号(从1开始的table_array的最左侧列)。...IF(判断条件,判断条件为真时返回什么,判断条件为假时返回什么) IF({0,1},C12:C18,D12:D18) 当{0,1}取0时返回 D12:D18,取1时返回C12:C18, 最终返回一个新的区域...vlookup的匹配查找只支持从上往下查找,当查询区域中我们的目标值出现多次的时候,我们用vlookup永远只能得到第一个出现的目标值(特殊处理方法这里我们不考虑),而xlookup则提供了多种查找方式

2K20
  • 精确度 召回率 f1_score多大了

    当normalize为True时,最好的表现是score为1,当normalize为False时,最好的表现是score未样本数量....Micro Average 微平均是指计算多分类指标时赋予所有类别的每个样本相同的权重,将所有样本合在一起计算各个指标。...P-R曲线上的一个点代表着,在某一阈值下,模型将大于该阈值的结果判定为正样本,小于该阈值的结果判定为负样本,此时返回结果对应的召回率和精确率。整条P-R曲线是通过将阈值从高到低移动而生成的。...原点附近代表当阈值最大时模型的精确率和召回率。 关于P-R曲线,因为我自己使用的比较少,所以这里就不深入给大家说了。...sklearn中f1_score方法和precision_score方法、recall_score方法的参数说明都是一样的,所以这里不再重复,只是把函数和返回值说明贴在下面: 计算F1 score,它也被叫做

    97320

    剑指offer | 面试题31:数组中出现次数超过一半的数字

    数组排序法:将数组nums 排序,数组中点的元素一定为众数。 摩尔投票法:核心理念为票数正负抵消。此方法时间和空间复杂度分别为O(N)和0(1),为本题的 最佳解法。...当发生票数和= 0时,剩余数组的众 数-定不变,这是由于: 当n1=x:抵消的所有数字中,有一半是众数x。 当n1≠x:抵消的所有数字中,众数x的数量最少为0个,最多为一半。...= x 时,票数 votes 自减 1 ; 返回值: 返回 x 即可; 复杂度分析: 时间复杂度 O(N) : N 为数组 nums 长度。...若 x 的数量超过数组长度一半,则返回 x ; 否则,返回未找到众数; 时间和空间复杂度不变,仍为 O(N)和 O(1) 。...x : 0; // 当无众数时返回 0 } /****************** 剑指offer **********************/ /** * 思路:将首次出现的数

    42860

    SHELL(bash)脚本编程六:执行流程

    当敲击键盘时,字符会存入Readline的编辑缓冲区,Readline会处理输入的变化并及时地将结果显示到终端上。 Readline还要保持命令提示符(prompt)的稳定(比如提示符的颜色)。...复合命令 bash中每种复合命令都使用一个C函数来实现,功能包括执行恰当的展开(如for循环中关键词in后面的单词),执行特定的命令,根据命令的返回值来变更执行流程等等。...3、如果未找到函数,则搜索内置命令,如果找到,则执行该内置命令(注意内置命令eval会使其后的所有单词再次经过解析、扩展和执行)。...5、如果hash表中无缓存记录,则搜索环境变量PATH值中所有目录内的文件,如果找到该名称的文件,则执行(并缓存至hash表);如果未找到,则返回错误信息,设置返回值为127并exit。...7、执行完毕后,bash收集命令的返回值。 这些,就是bash执行命令的整个流程。

    1.7K40

    C语言string.h所有函数汇总

    复制就像使用了中间缓冲区一样,允许目标和源重叠。源指针和目标指针指向的对象的基础类型与此函数无关;结果是数据的二进制副本。该函数不检查源中的任何终止空字符 - 它总是准确地复制字节数。...如果未找到该值,该函数将返回空指针。...返回值Return Value指向 str 中第一次出现的 character 的指针。如果未找到 character,则该函数返回空指针。...搜索包括终止空字符。因此,如果在 str1 中找不到 str2 的任何字符,该函数将返回 str1 的长度。参数Parametersstr1要扫描的 C 字符串。...返回值Return Value指向 str 中最后一个出现的字符的指针。如果未找到该字符,则该函数将返回一个空指针。

    76000

    【熟视C语言】如何快速的了解一个库函数(C语言讲解,以string.h中的部分库函数为例)

    当然,在这之后还有一个最好的方法,也就是本篇文章的重头戏——模拟实现库函数。接下来我将逐个讲解并模拟实现一部分string.h中的函数。...函数返回一个char*的地址,为复制目标的地址,通过这个地址可以访问得到复制成功后的内容 函数将'\0'计入长度并参与复制,空间重叠时存在循环,说明是'\0'在控制循环 代码实现: char* strcpy_simulation...函数的返回值一个整型的值,这个返回值是由两个字符串的关系决定的,当两个字符串相同时则返回0,而不相同时大于0则说明第一个字符串比第二个字符串的值更大,小于0则更小,而这个值其实是比较时遇到的第一个不相同的字符的值的比较...该函数从两个字符串的第一个字符开始比较是否相等,当遇到比较到不同的字符或者遇到终止字符'\0'时停止比较,并且这个函数比较的是字符的二进制值(参考ascii码值表)。...返回值为char*,如果str2指向字符串在str1指向字符串中有出现,则该返回指向str1中出现str2所指字符串内容的位置的指针,如果没有出现则返回空指针。

    31110

    数组查找:让你快速找到想要的元素!

    其输入参数为一个整数数组和需要查找的目标值。函数通过遍历数组中的每一个元素,判断该元素是否等于目标值,如果等于则返回该元素的下标,否则返回-1表示目标值未找到。...首先判断left是否大于right,如果是,返回-1,表示未找到目标值。否则,将数组分成两半,计算中间位置mid。如果中间位置的值等于目标值,返回mid。...然后通过调用二分查找方法binarySearch来查找数组中是否存在值为target的元素。如果binarySearch方法返回值不等于-1,则说明找到了目标元素,否则未找到目标元素。...hashSearch的搜索函数,在搜索函数中使用了哈希表的思想来定位目标元素是否存在于数组中。...:目标元素left:查找范围的左边界right:查找范围的右边界返回值:如果找到目标元素,则返回其在数组中的索引值;如果未找到目标元素,则返回 -1。

    31221

    你在 DeepSeek,我在 deepin Coding

    ABI 兼容 动态库的 ABI 兼容性是指不同版本的动态库能保持一致的二进制接口,使得旧版本编译的程序能在新版库环境下正常运行。...下面我们来看一下 ABI 兼容的几个关键点: ABI 定义内容 ABI 包含了数据类型的大小、数据结构的内存布局、函数调用约定(参数传递、返回值处理)、符号命名规则、异常处理机制等。...这些细节决定了程序如何正确地传递数据并接收返回值。 动态库版本管理与符号版本控制 为了确保兼容性,很多动态库(如 glibc)采用符号版本控制机制。...当 use_sysroot 设置为 true 时,Chromium 会下载一个 Debian Bullseye 版本的 sysroot 作为编译环境,帮助构建符合“最低公共平台”标准的二进制文件,从而确保它们能够在多个发行版上运行...你在 DeepSeek,我在 deepin Coding,尽管我们的方向不同,但我们都在各自的领域努力探索、前行, 我们都有光明的未来。

    5800

    【投稿】Rust 中的生命周期 —— 从 StrSplit 实例说开去

    ["a", "b", "c", "d", "e"]);} next() 的实现很简单: 1、在字符串中查找分隔符第一次出现的位置,如果找到返回索引值 Some(usize),未找到返回 None; 2、...; 2、在待处理的字符串中查找分隔符 存在分隔符,得到分隔符第一次出现的索引位置,根据索引将字符串分为三个部分,第一部分为此次调用的返回值,第二部分为分隔符,第三部分为下一次调用 next() 时待处理的字符串...找到,返回 (分隔符的开始索引, 分隔符的结束索引+1) // 2)未找到,返回 None fn find_next(&self, s: &str) -> Option搜索匹配的 Pattern,返回匹配到的字符串的开始索引 Some(usize);未找到,返回 None。...找到,返回 (分隔符的开始索引, 分隔符的结束索引+1) // 2)未找到,返回 None fn find_next(&self, s: &str) -> Option<(usize,

    1.7K30

    实战记录—PHP使用curl出错时输出错误信息

    CURL状态码列表 状态码 状态原因 解释 0 正常访问 1 错误的协议 未支持的协议。...17 设置传输模式为二进制 FTP 无法设定为二进制传输。无法改变传输方式到二进制。 18 文件传输短或大于预期 部分文件。只有部分文件被传输。...39 LDAP搜索失败 LDAP 搜索失败。 41 函数没有找到 功能无法找到。无法找到必要的LDAP 功能。 42 中止的回调 由回调终止。应用程序告知cURL 终止运作。...49 TELNET格式错误 不合式的telnet 选项。 51 远程服务器的SSL证书 peer 的SSL 证书或SSH 的MD5指纹没有确定。...52 服务器无返回内容 服务器无任何应答,该情况在此处被认为是一个错误。 53 加密引擎未找到 找不到SSL 加密引擎。 54 设定默认SSL加密失败 无法将SSL 加密引擎设置为默认。

    6.1K50

    使用python制作一个批量查询搜索排名的SEO免费工具

    # 返回排名(从1开始) return -1 # 如果未找到网站,返回-1 except requests.exceptions.RequestException...函数的目标是获取指定关键词在谷歌搜索结果中的排名。 在函数内部,首先构建了一个URL,该URL使用指定的关键词进行谷歌搜索。然后设置了一个User-Agent头部,模拟一个浏览器的请求。...接着使用enumerate函数遍历搜索结果列表,并使用result.find('a')['href']获取每个搜索结果中的链接。如果指定的网站域名出现在链接中,就返回当前的排名(从1开始计数)。...如果循环结束后未找到指定的网站域名,函数返回-1,表示未找到网站。...如果返回的排名不为None,则根据排名的值进行条件判断,如果排名为-1,打印关键词没有排名的消息,否则打印关键词的排名信息。 以上就是整段代码的含义和逻辑。

    26540

    码如其人,同学你能写一手漂亮的Python函数吗

    当一个函数可以被删除时,事情就好办了:如果其他地方发生改动,不再需要该函数的单一功能,那么只需将其删除。 举个例子来解释一下。...即使你尝试创建一个不会返回值的函数,我们也不能选择不在内部采用返回值,因为 Python 的解释器会强制返回一个 None。...我甚至希望发表以下声明:每一个函数都应该返回一个有用的值,即使这个值仅可用来测试。我们写的代码应该需要得到测试,而不带返回值的函数很难测试它的正确性,上面的函数可能需要重定向 I/O 才能得到测试。...以下是人们在被问及为什么他们写的函数没有返回值时给出的一些常见原因: 「函数所做的就是类似 I/O 的操作,例如将一个值保存到数据库中,这种函数不能返回有用的输出。」...我并不同意这种观点,因为在操作成功完成时,函数可以返回 True。 「我需要返回多个值,因为只返回一个值并不能代表什么。」 当然也可以返回包含多个值的一个元组。

    49420

    码如其人,同学你能写一手漂亮的Python函数吗

    当一个函数可以被删除时,事情就好办了:如果其他地方发生改动,不再需要该函数的单一功能,那么只需将其删除。 举个例子来解释一下。...即使你尝试创建一个不会返回值的函数,我们也不能选择不在内部采用返回值,因为 Python 的解释器会强制返回一个 None。...以下是人们在被问及为什么他们写的函数没有返回值时给出的一些常见原因: 「函数所做的就是类似 I/O 的操作,例如将一个值保存到数据库中,这种函数不能返回有用的输出。」...我并不同意这种观点,因为在操作成功完成时,函数可以返回 True。 「我需要返回多个值,因为只返回一个值并不能代表什么。」 当然也可以返回包含多个值的一个元组。...以下展示了非幂等的函数示例: 这函数不是幂等的,因为函数的返回值依赖于 I/O,即用户输入的数字。每次调用这个函数时,它都可能返回不同的值。

    58930

    ️ TypeError: argument of type ‘NoneType‘ is not iterable - NoneType类型的参数不可迭代完美解决方法

    这一错误通常出现在我们尝试对空值 (NoneType) 进行迭代操作时。本文将详细分析此错误的根源,提供有效的解决方案,并探讨如何在日常开发中避免类似错误的发生。...1. 错误的背景与成因 1.1 什么是 NoneType? 在Python中,NoneType 是表示空值的一种数据类型。它只有一个值,就是 None,通常用于表示"没有值"或"空"。...例如,当函数没有明确返回值时,Python会默认返回 None。...常见的触发场景 2.1 函数返回值为 None 当函数没有显式返回值时,Python默认返回 None。在某些情况下,如果我们没有正确处理这些返回值,可能会导致 NoneType 迭代错误。...print(item) 2.2 字典键查找失败 如果我们在字典中查找一个不存在的键,dict.get() 方法会返回 None,如果我们直接对这个返回值进行迭代,也会触发该错误。

    34710

    Python的内置函数和匿名函数

    参数 filename:代码文件名称,如果不是从文件读取代码则传递一些可辨认的值。当传入了 source参数时,filename参数传入空字符即可。 ...当source中包含流程语句 时,model应指定为‘exec’;当source中只包含一个简单的求值表达式,model应指定为‘eval’;当 source中包含了交互式命令语句,model应指定为'...(a)) # 没有实现 __call__, 返回 False 查看内置属性 dir:函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属 性、方法列表。...print(complex(1,2)) print(complex(1)) print(complex("1")) print(complex("1+2j")) 进制转换(3个): bin:将十进制转换成二进制并返回...(calc(10)) 匿名函数格式的说明 函数名 = lambda 参数 :返回值,实参 参数可以有多个,用逗号隔开 匿名函数不管逻辑多复杂,只能写一行,且逻辑执行结束后的内容就是返回 返回值和正常的函数一样可以是任意数据类型

    1.2K30

    码如其人,同学你能写一手漂亮的Python函数吗

    当一个函数可以被删除时,事情就好办了:如果其他地方发生改动,不再需要该函数的单一功能,那么只需将其删除。 举个例子来解释一下。...即使你尝试创建一个不会返回值的函数,我们也不能选择不在内部采用返回值,因为 Python 的解释器会强制返回一个 None。...以下是人们在被问及为什么他们写的函数没有返回值时给出的一些常见原因: 「函数所做的就是类似 I/O 的操作,例如将一个值保存到数据库中,这种函数不能返回有用的输出。」...我并不同意这种观点,因为在操作成功完成时,函数可以返回 True。 「我需要返回多个值,因为只返回一个值并不能代表什么。」 当然也可以返回包含多个值的一个元组。...以下展示了非幂等的函数示例: 这函数不是幂等的,因为函数的返回值依赖于 I/O,即用户输入的数字。每次调用这个函数时,它都可能返回不同的值。

    46020

    几种常见的Runtime Exception

    摘要:一,error和exception的区别,RuntimeException和非RuntimeException的区别1.异常机制 异常机制是指当程序出现错误后,程序如何处理。...传统的处理异常的办法是,函数返回一个特殊的结果来表示出现异常(通 一,error和exception的区别,RuntimeException和非RuntimeException的区别 1....传统的处理异常的办法是,函数返回一个特殊的结果来表示出现异常(通常这个特殊结果是大家约定俗称的),调用该函数的程序负责检查并分析函数返回的结果。...这样做有如下的弊端:例如函数返回-1代表出现异常,但是如果函数确实要返回-1这个正确的值时就会出现混淆;可读性降低,将程序代码与处理异常的代码混爹在一起;由调用函数的程序来分析错误,这就要求客户程序员对库函数有很深的了解...3 异常的使用方法 声明方法抛出异常 ① 语法:throws(略) ② 为什么要声明方法抛出异常? 方法是否抛出异常与方法返回值的类型一样重要。

    1.2K20
    领券