• 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实现根据用户输入从电影网站获取影片信息的方法
  • 基于python的汉字转GBK码实现代码
  • 简单学习Python time模块
  • 通过Python爬虫代理IP快速增加博客阅读量
  • Python中非常实用的一些功能和函数分享
  • 详解Python的collections模块中的deque双端队列结构
  • python正常时间和unix时间戳相互转换的方法
  • Python自动化测试ConfigParser模块读写配置文件
  • 使用python实现拉钩网上的FizzBuzzWhizz问题示例
  • 分享Python字符串关键点

文章分类

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

最近更新的内容

    • python正则匹配抓取豆瓣电影链接和评论代码分享
    • 删除目录下相同文件的python代码(逐级优化)
    • 教你安装python Django(图文)
    • 写了个监控nginx进程的Python脚本
    • 利用Python生成文件md5校验值函数的方法
    • Python文件及目录操作实例详解
    • python Django批量导入不重复数据
    • 利用Python实现简单的相似图片搜索的教程
    • 使用Python简单的实现树莓派的WEB控制
    • 编写Python脚本把sqlAlchemy对象转换成dict的教程

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

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