今日代码大赏 | Python 实现二分查找算法

编程领域,掌握算法不仅能够帮助我们解决问题,更能够提升我们解决问题的能力。

前两天,我们用 Java 实现了二分查找算法,为了确保所有使用不同编程语言的同学都能够学习并掌握这一重要算法。

且根据前两天的投票结果,发现投 Python 的同学最多,那么今天我们一起探索下用 Python 实现 — 二分查找算法。

有需要了解 Java 实现二分查找算法的同学,可点击下方标题直接跳转哦!

今日代码大赏 | Java 实现二分查找算法

下面是一个 Python 程序实现二分查找算法的示例代码:

def binary_search(nums, target):
    left, right = 0len(nums) - 1
    
    while left <= right:
        mid = (left + right) // 2
        if nums[mid] == target:
            return mid
        elif nums[mid] < target:
            left = mid + 1
        else:
            right = mid - 1
    
    return -1  # 如果没有找到目标元素,返回-1

# 示例数组和目标元素
nums = [13579111315171920]
target = 13

# 调用二分查找函数
index = binary_search(nums, target)

# 输出结果
if index != -1:
    print(f"元素 {target} 在数组中的索引是 {index}")
else:
    print(f"数组中没有找到元素 {target}")

运行上述程序,如果数组 nums 包含元素 13,输出结果将会是:元素 13 在数组中的索引是 6

在这个例子中,我们首先定义了一个 binary_search 函数,它接受一个有序数组 nums 和一个目标值 target 作为参数。函数内部使用两个指针 left 和 right 来标识当前的搜索范围。通过计算中间索引 mid 并比较 nums[mid] 与 target 的大小,我们可以决定是继续在左半部分搜索,还是在右半部分搜索。这个过程会一直重复,直到找到目标元素或者搜索范围为空。

二分查找算法的时间复杂度为 O(log n),其中 n 是数组的长度。这使得二分查找在处理大型数据集时非常高效,并且 Python 的简洁语法让实现这个算法变得更加容易。

今天的代码大赏就到这里。希望通过这篇文章,你能够对二分查找算法在 Python 中的实现有一个更深入的理解。

如果你对算法感兴趣,或者想要了解更多不同语言实现的算法,欢迎在评论区留下自己的想法和建议。

完整代码片段来源于代码小抄,欢迎点击进入小程序阅读!

在线访问:https://www.codecopy.cn/post/ikolxt

在代码小抄可以看到更多优质代码,也欢迎大家积极分享,可能会获得我们官方的小礼品 🎁~

往期推荐

今日代码大赏 | Python 实现归并排序算法

今日代码大赏 | Java 实现二分查找算法

今日代码大赏 | Java 实现快速排序算法

今日代码大赏 | Java 实现冒泡排序

今日代码大赏 | arrayCopy 优雅使用

相关推荐

  • 又成长了,踩到了 Lombok 的坑!
  • 亚马逊任命知名AI专家吴恩达为董事会成员;OpenAI推出新版GPT-4 Turbo;苹果计划升级Mac产品线,配置AI芯片
  • 深入探讨下SSR与CSR有啥不同
  • 万兴科技副总裁朱伟:天幕已启 共赴AI大时代 | GenAICon 2024
  • “AI版iPhone”口碑翻车!被嘲美丽废物,售价超5000元,又贵又难用
  • 遇到这三个 api,你会把它封装成组件么?
  • Mamba入局遥感!RS-Mamba:首次使用SSM进行大遥感图像的语义分割与变化检测
  • ​CVPR 2024 | PromptSG:开启语言引导行人检索新纪元,实现精准语义捕捉
  • 【社会招聘】字节商业化_广告算法工程师_Ranking方向
  • 释放生产力!为AI负载量身定制高效架构!
  • 智能化转型的基石:构建有效的数据治理体系
  • AIGC超进化:AI Agent在游戏智能NPC中的应用
  • ByteHouse如何将OLAP性能提升百倍?
  • 今日arXiv最热NLP大模型论文:北京大学&快手发布统一的图文视频生成大模型Video-LaVIT
  • 斯坦福发文:AI写论文比例激增,CS专业是重灾区,现状堪忧!
  • 如何测试大模型?
  • 前员工控诉七猫暴力裁员“七宗罪”;纯血鸿蒙真机亮相;李彦宏不看好开源大模型;iOS18新AI功能完全在设备端运行;普华永道内讧
  • GPT-4整治学术不端!人大/浙大团队实测7000篇论文,撤稿预测与人类95%一致
  • 陶哲轩力荐!史上最全「数学AI资源」清单出炉
  • 清华首款AI光芯片登上Science,全球首创架构迈向AGI