• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > 简介二分查找算法与相关的Python实现示例

简介二分查找算法与相关的Python实现示例

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了matlab二分法示例,论文作者简介示例,个人简介示例,87方房子装修示例,身份证用来贷款示例等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

二分查找Binary Search的思想:
以有序表表示静态查找表时,查找函数可以用二分查找来实现。
二分查找(Binary Search)的查找过程是:先确定待查记录所在的区间,然后逐步缩小区间直到找到或找不到该记录为止。
1二分查找的时间复杂度是O(log(n)),最坏情况下的时间复杂度是O(n)。
假设 low 指向区间下界,high 指向区间上界,mid 指向区间的中间位置,则 mid  = (low + high) / 2;
具体过程:
1.先将关键字与 mid 指向的元素比较,如果相等则返回mid。
2.关键字小于 mid 指向的元素关键字,则在 [ low,  mid-1 ]区间中继续进行二分查找。
3.关键字大于mid 指向的元素关键字,则在[ mid +1 , high] 区间中继续进行二分查找。

用Python实现二分查找示例:

>>> def find(self, num):
  l = len(self)
  first = 0
  end = l - 1
  mid = 0
  if l == 0:
   self.insert(0,num)
   return False
  while first < end:
   mid = (first + end)/2
   if num > self[mid]:
    first = mid + 1
   elif num < self[mid]:
    end = mid - 1
   else:
    break
  if first == end:
   if self[first] > num:
    self.insert(first, num)
    return False
   elif self[first] < num:
    self.insert(first + 1, num)
    return False
   else:
    return True
  elif first > end:
   self.insert(first, num)
   return False
  else:
   return True

>>> list_d = ['a','b','c','d','e','f','d','t']
>>> value_d = 't'
>>> aa=find(list_d,value_d)
>>> aa
True
>>> value_d='ha'
>>> aa=find(list_d,value_d)
>>> aa
False

</div>

</div>

您可能想查找下面的文章:

  • 简介二分查找算法与相关的Python实现示例
  • 简介二分查找算法与相关的Python实现示例

相关文章

  • 跟老齐学Python之玩转字符串(3)
  • Python中的自省(反射)详解
  • python实现的生成随机迷宫算法核心代码分享(含游戏完整代码)
  • python使用socket创建tcp服务器和客户端
  • python开发的小球完全弹性碰撞游戏代码
  • 跟老齐学Python之Python安装
  • Python selenium 父子、兄弟、相邻节点定位方式详解
  • Python XML RPC服务器端和客户端实例
  • 使用IPython下的Net-SNMP来管理类UNIX系统的教程
  • python中快速进行多个字符替换的方法小结

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Python的Tornado框架异步编程入门实例
    • Windows和Linux下Python输出彩色文字的方法教程
    • Python守护进程用法实例分析
    • python删除过期文件的方法
    • 深入理解python中的atexit模块
    • Python的subprocess模块总结
    • 跟老齐学Python之Import 模块
    • 在Django框架中运行Python应用全攻略
    • 在Python的Bottle框架中使用微信API的示例
    • python处理html转义字符的方法详解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有