python实现二分查找算法

 更新时间:2017年09月21日 10:38:36   作者:nfzhlk  
这篇文章主要为大家详细介绍了python实现二分查找算法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

二分查找算法:简单的说,就是将一个数组先排序好,比如按照从小到大的顺序排列好,当给定一个数据,比如target,查找target在数组中的位置时,可以先找到数组中间的数array[middle]和target进行比较,当它比target小时,那么target一定是在数组的右边,反之,则target在数组的左边,比如它比target小,则下次就可以只比较[middle+1, end]的数,继续使用二分法,将它一分为二,直到找到target这个数返回或者数组全部遍历完成(target不在数组中)

优点:效率高,时间复杂度为O(logN);
缺点:数据要是有序的,顺序存储。

python的代码实现如下:

#!/usr/bin/python env
# -*- coding:utf-8 -*-

def half_search(array,target):
  low = 0
  high = len(array) - 1
  while low < high:
     mid = (low + high)/2
     if array[mid] > target:
      high = mid - 1
     elif array[mid] < target:
      low = mid + 1
     elif array[mid] == target:
      print 'I find it! It is in the position of:',mid
      return mid
     else:
      print "please contact the coder!"
  return -1



if __name__ == "__main__":
  array = [1, 2, 2, 4, 4, 5]

运行结果如下:

I find it! It is in the position of: 4
4
-1
I find it! It is in the position of: 0
0
-1

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 详解Python如何实现Excel数据读取和写入

    详解Python如何实现Excel数据读取和写入

    这篇文章主要为大家详细介绍了python如何实现对EXCEL数据进行读取和写入,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • python开发入门——列表生成式

    python开发入门——列表生成式

    这篇文章主要介绍了python 列表生成式的相关资料,帮助大家更好的理解和学习python开发,感兴趣的朋友可以了解下
    2020-09-09
  • Python实现把数字转换成中文

    Python实现把数字转换成中文

    这篇文章主要介绍了Python实现把数字转换成中文,一般用于数字金额转中文大写金额,即将阿拉伯数字转换为大写的中文,需要的朋友可以参考下
    2015-06-06
  • Python如何将bmp格式的图片批量转成jpg

    Python如何将bmp格式的图片批量转成jpg

    这篇文章主要介绍了Python如何将bmp格式的图片批量转成jpg问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • Python 逐行分割大txt文件的方法

    Python 逐行分割大txt文件的方法

    本文通过代码给大家介绍了Python 逐行分割大txt文件的方法,在文中给大家提到了Python从txt文件中逐行读取数据的方法,需要的朋友参考下吧
    2017-10-10
  • 基于python进行抽样分布描述及实践详解

    基于python进行抽样分布描述及实践详解

    这篇文章主要介绍了基于python进行抽样分布描述及实践详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • Python实现一个简单的QQ截图

    Python实现一个简单的QQ截图

    大家好,本篇文章主要讲的是Python实现一个简单的QQ截图,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下的相关资料
    2022-02-02
  • python目标检测基于opencv实现目标追踪示例

    python目标检测基于opencv实现目标追踪示例

    这篇文章主要为大家介绍了python基于opencv实现目标追踪示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • python为tornado添加recaptcha验证码功能

    python为tornado添加recaptcha验证码功能

    tornado作为微框架,并没有自带验证码组件,recaptcha是著名的验证码解决方案,简单易用,被很多公司运用来防止恶意注册和评论。tornado添加recaptchaHA非常容易
    2014-02-02
  • python 基于opencv实现高斯平滑

    python 基于opencv实现高斯平滑

    这篇文章主要介绍了python 基于opencv实现高斯平滑,帮助大家更好的理解和使用python处理图片,感兴趣的朋友可以了解下
    2020-12-12

最新评论