def bs(a, num):low = 0high = len(a) - 1mid = int(high / 2)while low<high: #当low == high 的时候查不到值那就不会存在了if num < a[mid]:high = midelif num > a[mid]:low = mid+1 #这里不+1 查找的数在最后一位的时候会形成死循环 例如 7 8 int((7+8)/2)=7 则永远7 8 不能查找到数组的第8位elif num == a[mid]:return midelse:return -1mid = int((high + low) / 2)return -1if __name__ == '__main__':a = [1, 2, 3, 4, 5, 6, 7, 8, 9]index = bs(a, -1)print(index)

算法 - pyhton - 二分查找相关推荐

  1. 算法图解/二分查找/简单查找/选择排序/递归算法/快速排序算法/

    大 O 表示法 大 O 表示法在讨论运行时间时,log 指的都是 log2 大 O 表示法指出了算法有多快,让你能够比较操作数,它指出了算法运行时间的增速,而并非以秒为单位的速度. 大 O 表示法指出 ...

  2. 数据结构与算法:二分查找

    二分查找是搜索算法中的一种,用来搜索有序数组 二分查找: 是一种简单算法,其输入是一个有序的元素列表(必须有序的原因稍后解释).如果要 查找的元素包含在列表中,二分查找返回其位置:否则返回null. ...

  3. javascript数据结构与算法---检索算法(二分查找法、计算重复次数)

    javascript数据结构与算法---检索算法(二分查找法.计算重复次数) /*只需要查找元素是否存在数组,可以先将数组排序,再使用二分查找法*/ function qSort(arr){if (a ...

  4. java二分查找法_java算法之二分查找法的实例详解

    java算法之二分查找法的实例详解 原理 假定查找范围为一个有序数组(如升序排列),要从中查找某一元素,如果该元素在此数组中,则返回其索引,否则返回-1.通过数组长度可取出中间位置元素的索引,将其值与 ...

  5. 查找算法:二分查找、顺序查找

    08年9月入学,12年7月毕业,结束了我在软件学院愉快丰富的大学生活.此系列是对四年专业课程学习的回顾,索引参见:http://blog.csdn.net/xiaowei_cqu/article/de ...

  6. list 查找_趣味图解算法之二分查找

    大多数程序员在看到"算法"两字的时候,是不是头大如斗.但如果想去大公司发展,在面试时又绕不过算法这座大山.市面上好多讲解算法的书籍(如算法导论)基本上都太学术.太复杂,对初学者很不 ...

  7. 算法总结-二分查找算法

    二分查找也称折半查找(Binary Search),是一种效率较高的查找方法.该算法要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列.如果一个序列是无序的或者是链表,那么该序列就不能使用二 ...

  8. 经典算法之二分查找法(俗称基本二分搜索法)

    经典算法之二分查找法(俗称二分搜索法) 文章目录 经典算法之二分查找法(俗称二分搜索法) 前言 一.什么是二分查找法? 二.代码实现 总结 前言 就算法而言,我们主要学习的是数学+思维+逻辑+数据结构 ...

  9. 算法简介——二分查找,时间复杂度,空间复杂度

    文章目录 前言 二分查找 时间复杂度 大O表示法 空间复杂度 小结 前言 算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略 ...

最新文章

  1. MatLab画图总结
  2. laravel 服务提供者介绍和使用
  3. 带你少走弯路:强烈推荐的Keras快速入门资料和翻译(可下载)
  4. Java与C++有何区别呢?请看以下几点就明白了……
  5. Git基础知识教程整理(Git基本操作)
  6. Spring Cloud微服务之业务物理删除(十)
  7. 华为Mate 30 Pro再爆猛料:更“大”更高级了
  8. 嵌入式系统——系统安全之常见病毒漏洞刷题整理
  9. (转载)网络互联参考模型(详解)
  10. 用python实现一个socket echo程序 tcp socket的几个关闭状态
  11. TOMCAT下应用部署新法(/META-INF/context.xml)
  12. mycat-mysql读写分离
  13. xml大于等于转移_Mybatis.xml文件中大于小于等于
  14. 权力的游戏——读《原则2 :应对变化中的世界秩序》(中)
  15. 还在用纸质表进行设备巡检?
  16. 1个英文字母、1个汉字、标点符号各占几个字节?以及文件的编码方式查看
  17. 钱包开发经验分享:BTC篇
  18. Twitter与微博
  19. 51SCM_AD模块CS5550学习心得
  20. itchat+在线聊天机器人接口实现微信聊天机器人

热门文章

  1. php对长文章进行分页处理
  2. java线程顺序输出_多线程按顺序输出ABC
  3. python中cursor属性_Python – AttributeError:’NoneType’对象没有属性’cursor’
  4. 算法的复杂度与Master定理
  5. java线程锁的作用,大厂面经合集
  6. 【PAT (Advanced Level) Practice】1054 The Dominant Color (20 分)
  7. 【深度学习】协同优化器和结构化知识蒸馏
  8. 【Java Web前端开发】TomcatServlet基础
  9. 机器学习(MACHINE LEARNING)MATLAB进行概率统计分析
  10. 【编译原理】关于克林闭包与正闭包的讨论