Python3查找算法02 - 二分查找

  • 原创
  • Madman
  • /
  • /
  • 0
  • 8867 次阅读

Synopsis: 二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表

代码已上传到 https://github.com/wangy8961/python3-algorithms ,欢迎star

1. 二分查找

二分查找(binary search),也称折半查找(half-interval search),是一种在有序数组中查找某一特定元素的搜索算法。搜索过程为,从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果要查找的元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半

2. 非递归实现

def binary_search(L, item):
    '''非递归实现二分查找,输入的列表必须是有序的(比如,从小到大排列)'''
    first = 0
    last = len(L) - 1
    found = False

    while first <= last and not found:
        midpoint = (first + last) // 2
        print('first = {}, last = {}, midpoint = {}'.format(first, last, midpoint))  # 测试
        if L[midpoint] == item:  # 找到了
            found = True
        else:
                                
                            
  • John
  • 邱晨100
  • nanber-WQ
  • gaofei
  • ChenJanson
  • Victory and cash in under a minute fdjhgkhjkg.temp.swtest.ru S3
  • Ultimate deadline to secure your payment cx180165.tw1.ru 9U
  • Experience it and get free cash fdjhgkhjkg.temp.swtest.ru 7i
  • Your membership unlocks these funds fdjhgkhjkg.temp.swtest.ru wS
  • Come Out on Top and Get Instant Money cx180165.tw1.ru Jw
  • Your jackpot win awaits today cv505813.tw1.ru mo
  • Receive a Payout on All Expenditure cx180165.tw1.ru DS
  • Access your expedited cash reward now cx180165.tw1.ru Jy
  • Add a comment to claim your cash prize cx180165.tw1.ru yW
  • Take Home Your Dollar Reward cx180165.tw1.ru Ae
  • This is your last call to claim your cash cx180165.tw1.ru sg
  • Your feedback pays Do a survey fdjhgkhjkg.temp.swtest.ru Zo
  • Show your like get paid fdjhgkhjkg.temp.swtest.ru r4
  • A bonus that has been reserved cx180165.tw1.ru Hq
  • Unclaimed funds have now been secured by you cx180165.tw1.ru SG
  • Receive Your Funds Promptly fdjhgkhjkg.temp.swtest.ru O6
  • Participate to claim your bonus cx180165.tw1.ru GD
  • Turn Odd Jobs into Earnings fdjhgkhjkg.temp.swtest.ru n2
  • Expiring soon your final cash claim cv505813.tw1.ru Zq
未经允许不得转载: LIFE & SHARE - 王颜公子 » Python3查找算法02 - 二分查找

分享

作者

作者头像

Madman

如需 Linux / Python 相关问题付费解答,请按如下方式联系我

0 条评论

暂时还没有评论.

专题系列