python实现二分搜索binary_search
条件:给定一个升序列表,返回target值的下标,没有则返回-1
def binary_search(data, target):target_index = -1start_index = 0end_index = len(data) - 1while True:middle_index = (end_index + start_index) // 2middle_value = data[middle_index]length = end_index + 1 - start_indexprint(f"middle_index: {middle_index}, middle_value: {middle_value}, length: {length}")if target == middle_value:target_index = middle_indexbreak# 在右侧elif target > middle_value:start_index = middle_index + 1# 在左侧else:end_index = middle_index - 1# 终止循环条件 ,当每次对分 对分到最后还没找到if not length:breakreturn target_indexif __name__ == '__main__':a = [1, 2, 3, 5, 8, 9, 10, 12, 14, 15, 16]t_index = binary_search(a, 2)print(t_index)

python实现二分搜索binary_search相关推荐

  1. java python算法_用Java,Python和C ++示例解释的搜索算法

    java python算法 什么是搜索算法? (What is a Search Algorithm?) This kind of algorithm looks at the problem of ...

  2. python中算法定义_python算法

    引言 定义:算法就是按照一定步骤解决问题的办法 属性: 正确:就是可以正确的求解问题 快速:就是时间复杂度要尽量小 有穷性:要在有限个步骤解决问题 渐进分析法为什么可以做到与算法运行硬件环境无关? 算 ...

  3. 算法与数据结构的python概述

    引子 问题一:1+2+3+4+5+-+10000=? 第一种解法: 1+2=3,3+3=6,6+4=10,10+5=15- 这是要算到猴年马月的节奏呀 果断弃之 第二种解法: 聪明的高斯,这样玩: ( ...

  4. 最新算法校招编程-剑指offer、Leetcode常考题目及解法分享

    本资源整理了BAT.TMD等互联网算法岗校招面试过程中常考的LeetCode和剑指offer编程题:此外,还整理了部分百度.腾讯.阿里.今日头条相关的面试经验,对于正准备校招面试的同学非常值得参考复习 ...

  5. 算法导论第三版 第2章习题答案

    2020/10/27: 增加伪代码相应的Python实现代码. 2020/11/13:修订第2节第3题的bug. 参考文献:https://ita.skanev.com/ 2 Getting Star ...

  6. 查找算法——二分查找【代码实现】

    伪代码 递归 // initially called with low = 0, high = N-1BinarySearch(A[0..N-1], value, low, high) {// inv ...

  7. [FreeCodeCamp笔记] Python 数据结构和算法1 二分搜索 Binary Search

    我以前学过数据结构和算法(data structure and algorithms. 现在普遍简称DSA),当时用的Robert Sedgewick的coursera课程.这位大神写的<算法( ...

  8. 笨办法学 Python · 续 练习 21:二分搜索

    练习 21:二分搜索 原文:Exercise 21: Binary Search 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 二分搜索算法是一个简单方法,在已排序的元素列表中 ...

  9. python实现二分查找_数据结构和算法:Python实现二分查找(Binary_search)

    在一个列表当中我们可以进行线性查找也可以进行二分查找,即通过不同的方法找到我们想要的数字,线性查找即按照数字从列表里一个一个从左向右查找,找到之后程序停下.而二分查找的效率往往会比线性查找更高. 一. ...

  10. 递归实现二分搜索(python)

    既然你已经知道了应该如何来实现递归函数,现在就可以回过头再去看看我们的二分搜索了.回忆一下,这个算法的基本思想是查看中间值,然后通过递归来搜索列表的下半部分或上半部分. 递归的基本情况是我们可以停止递 ...

最新文章

  1. Flask-RESTful之视图
  2. android application 引起内存泄漏的原因
  3. 个人副业在家可做大学生首选小程序创业项目
  4. Java学习笔记十(注解)
  5. AVFoundation和 GPUImage初探
  6. 西电与中科大计算机专业哪个好,中国最好的5所“科技大学”,中科大第二,你的母校排第几?...
  7. pycharm同时注释多行代码快捷键
  8. Educational Codeforces Round 41(已补D,E)
  9. python网络运维案例代码库_OLDboy-python第八期运维教程
  10. 【Node.js学习笔记五】npm(Node包管理器)命令行选项
  11. Mysql show status详解
  12. 第十三 关于JavaScript
  13. java对话框进度条_java进度条
  14. Ubuntu 16 安装qq教程
  15. js 复制div文本
  16. 电力系统服务器是什么,什么是电网调度?
  17. CMS采集插件-CMS自动采集插件免费
  18. 《设计模式:可复用面向对象软件的基础》——引言(笔记)
  19. SAP基底数据仓库实战项目(序章)
  20. 11个销售心理学方法,帮你搞定客户!

热门文章

  1. 【Webcam设计】利用底层V4L2+OPENCV进行图像处理以及移植策略
  2. Kinetics-400数据集介绍
  3. pytorch Sampler
  4. python *args 和 **kwargs
  5. 如何理解二次型?(转)
  6. 初识 Node.js
  7. 《重构》阅读笔记-代码的坏味道
  8. POI--HSSFCell类
  9. java web 中Integer.valueof()与integer.parseint()
  10. ASP.NET 首页性能的4大做法