python二分法实现实例

 更新时间:2013年11月21日 11:31:07   作者:  
这篇文章主要介绍了python二分法的实现代码,大家可以参考使用

1.算法:(设查找的数组期间为array[low, high])

(1)确定该期间的中间位置K
(2)将查找的值T与array[k]比较。若相等,查找成功返回此位置;否则确定新的查找区域,继续二分查找。区域确定如下:
a.array[k]>T 由数组的有序性可知array[k,k+1,……,high]>T;故新的区间为array[low,……,K-1]
b.array[k]<T 类似上面查找区间为array[k+1,……,high]。每一次查找与中间值比较,可以确定是否查找成功,不成功当前查找区间缩小一半。递归找,即可。

2.python代码:

复制代码 代码如下:

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

def BinarySearch(array,t):
    low = 0
    height = len(array)-1
    while low < height:
        mid = (low+height)/2
        if array[mid] < t:
            low = mid + 1

        elif array[mid] > t:
            height = mid - 1

        else:
            return array[mid]

    return -1


if __name__ == "__main__":
    print BinarySearch([1,2,3,34,56,57,78,87],57)

结果:57

3.时间复杂度:O(log2n);

注意:二分查找的前提必须待查找的序列有序。

相关文章

  • python 将字符串转换成字典dict的各种方式总结

    python 将字符串转换成字典dict的各种方式总结

    下面小编就为大家分享一篇python 将字符串转换成字典dict的各种方式总结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • 利用Python小工具实现3秒钟将视频转换为音频

    利用Python小工具实现3秒钟将视频转换为音频

    这篇文章主要介绍了利用Python小工具实现 3秒钟将视频转换为音频效果,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • Python+PyQt5实现数据库表格动态增删改

    Python+PyQt5实现数据库表格动态增删改

    这篇文章主要为大家介绍如何利用Python中的PyQt5模块实现对数据库表格的动态增删改,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-03-03
  • SQLite3中文编码 Python的实现

    SQLite3中文编码 Python的实现

    下面小编就为大家带来一篇SQLite3中文编码 Python的实现。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • python使用锁访问共享变量实例解析

    python使用锁访问共享变量实例解析

    这篇文章主要介绍了python使用锁访问共享变量实例解析,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • python获取全国城市pm2.5、臭氧等空气质量过程解析

    python获取全国城市pm2.5、臭氧等空气质量过程解析

    这篇文章主要介绍了python获取全国城市pm2.5、臭氧等空气质量过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • 儿童编程python入门

    儿童编程python入门

    很多家长都想让孩子学习编程,今天我们给大家分享一下关于儿童python的入门以及简单的代码,有兴趣的朋友阅读下吧。
    2018-05-05
  • 分享4个方便且好用的Python自动化脚本

    分享4个方便且好用的Python自动化脚本

    自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程,直白的就是为了节省人力、时间或硬件资源,提高测试效率,这篇文章主要给大家分享介绍了3个方便且好用的Python自动化脚本,需要的朋友可以参考下
    2022-02-02
  • python代码能做成软件吗

    python代码能做成软件吗

    在本篇内容里小编给大家分享的是一篇关于把python代码做成软件的方法,有兴趣的朋友们可以阅读下。
    2020-07-07
  • python中的json模块常用方法汇总

    python中的json模块常用方法汇总

    这篇文章主要介绍了python中的json模块常用方法汇总,json模块可以实现json数据的序列化和反序列化,更多相关资料介绍需要的小伙伴可以参考一下下面文章内容
    2022-06-06

最新评论