请用Python语言写一份执行二分查找的代码

时间: 2023-07-19 12:21:46 浏览: 37
好的,以下是一个简单的二分查找实现的 Python 代码: ```python def binary_search(arr, target): left, right = 0, len(arr) - 1 while left <= right: mid = (left + right) // 2 if arr[mid] == target: return mid elif arr[mid] < target: left = mid + 1 else: right = mid - 1 return -1 ``` 其中,`arr` 表示要查找的有序数组,`target` 表示要查找的目标元素。在函数中,我们首先定义 `left` 和 `right` 分别表示数组的左右边界。然后,我们每次取数组的中间元素 `mid`,如果 `arr[mid]` 等于目标元素 `target`,则直接返回 `mid`;如果 `arr[mid]` 小于 `target`,则说明目标元素在 `mid` 的右侧,因此更新 `left` 值;如果 `arr[mid]` 大于 `target`,则说明目标元素在 `mid` 的左侧,因此更新 `right` 值。如果最终无法找到目标元素,则返回 `-1` 表示查找失败。
相关问题

用Python写一个二分查找代码

def binary_search(list, item): low = 0 high = len(list) - 1 while low <= high: mid = (low + high) // 2 guess = list[mid] if guess == item: return mid if guess > item: high = mid - 1 else: low = mid + 1 return None答案是:这是一段用Python写的二分查找算法的代码,它可以在一个有序列表中查找一个给定的数字。

用python写一段二分查找的代码

### 回答1: def binary_search(list, target): low = 0 high = len(list) - 1 while low <= high: mid = (low + high) // 2 if list[mid] == target: return mid elif list[mid] < target: low = mid + 1 else: high = mid - 1 return -1print(binary_search([1, 2, 3, 4, 5], 4)) # 3 ### 回答2: 二分查找(Binary Search)是一种高效的查找算法,适用于有序数组。算法采用分治思想,在每一次比较中将查找范围缩小一半。以下是用Python实现的二分查找代码: ```python 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: high = mid - 1 # 如果中间值小于目标值,则在右半部分查找 else: low = mid + 1 # 如果找不到目标值,则返回-1 return -1 # 测试代码 nums = [2, 5, 8, 12, 16, 23, 38, 56, 72, 91] target = 16 result = binary_search(nums, target) if result != -1: print("目标值所在的索引为:", result) else: print("未找到目标值") ``` 以上代码首先定义了一个`binary_search`函数,接受一个有序数组`arr`和目标值`target`作为参数。函数通过维护一个左边界`low`和右边界`high`,在每次循环中计算中间索引`mid`。然后根据中间值与目标值的大小关系,更新`low`和`high`的值,最终返回目标值在数组中对应的索引,如果找不到则返回-1。 然后,在测试代码中定义了一个有序数组`nums`和目标值`target`,调用`binary_search`函数进行查找,并打印结果。如果找到目标值,则输出目标值所在的索引;如果未找到,则输出未找到的提示信息。 通过以上代码,可以实现二分查找算法,并在有序数组中查找目标值。 ### 回答3: 二分查找是一种在有序数组中查找指定元素的算法。它先确定数组的中间元素,然后将指定元素与中间元素进行比较,如果相等则返回中间元素的索引,如果较小则在数组的前半部分继续查找,如果较大则在数组的后半部分继续查找,直到找到指定元素或者数组被查找完毕。 以下是使用Python语言实现的二分查找算法代码: ```python 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`是要查找的目标元素。函数`binary_search`实现了二分查找算法,并返回目标元素在数组中的索引,如果目标元素不存在则返回-1。 算法通过不断更新`low`和`high`的值来缩小查找范围,直到找到目标元素或者查找范围为空。 在每一次循环中,首先计算出中间元素的索引`mid`,然后根据`arr[mid]`与`target`的比较结果来更新`low`和`high`的值。如果`arr[mid]`等于`target`,则返回`mid`作为查找结果;如果`arr[mid]`小于`target`,则在数组的后半部分继续查找,即将`low`更新为`mid + 1`;如果`arr[mid]`大于`target`,则在数组的前半部分继续查找,即将`high`更新为`mid - 1`。 如果循环结束时仍未找到目标元素,则返回-1。 这段代码实现了二分查找算法,可以方便地在有序数组中查找指定元素。

相关推荐

最新推荐

recommend-type

使用Python做垃圾分类的原理及实例代码附

主要介绍了用Python做垃圾分类的实现原理,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
recommend-type

Python3实现将一维数组按标准长度分隔为二维数组

今天小编就为大家分享一篇Python3实现将一维数组按标准长度分隔为二维数组,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
recommend-type

vscode写python时的代码错误提醒和自动格式化的方法

主要介绍了vscode写python时的代码错误提醒和自动格式化的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
recommend-type

使用Python进行二进制文件读写的简单方法(推荐)

下面小编就为大家带来一篇使用Python进行二进制文件读写的简单方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
recommend-type

Python txt文件常用读写操作代码实例

主要介绍了Python txt文件常用读写操作代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

如何用python编写api接口

在Python中编写API接口可以使用多种框架,其中比较流行的有Flask和Django。这里以Flask框架为例,简单介绍如何编写API接口。 1. 安装Flask框架 使用pip命令安装Flask框架: ``` pip install flask ``` 2. 编写API接口 创建一个Python文件,例如app.py,编写以下代码: ```python from flask import Flask, jsonify app = Flask(__name__) @app.route('/api/hello', methods=['GET']) def hello():
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。