国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > Python基础教程 > python二分查找的原理

python二分查找的原理

python二分查找

头像

小妮浅浅

2021-08-10 10:07:383125浏览 · 0收藏 · 0评论

原理

1、假设表中的要素按升序排列,将表中间位置记录的关键词与检索关键词进行比较,如果两者相等,则检索成功。

2、否则,利用中间位置记录将表分为前后两个子表。

如果中间位置记录的关键词大于搜索关键词,则进一步搜索前一个子表,否则进一步搜索后一个子表。重复以上流程,找到符合条件的记录,使检索成功,或者在子表不存在之前,此时检索不成功。

实例

"""
应用前提:在一个含有n个元素的有序序列中定位目标值 时间复杂度:O(logn)
该算法维持两个参数low和high,这样可使所有候选条目的索引位于low和high之间。首先, low=0和high=n-1。然后我们比较目标值和中间值候选项,即索引项[mid]的数据。
mid =L(low + high)/2 ]考虑以下三种情况:
- 如果目标值等于[mid]的数据, 然后找到正在寻找的值,则查找成功并且终止。
- 如果目标值< [mid] 的数据, 对前半部分序列重复这一过程,即索引的范围从low到mid-1.
- 如果目标值> [mid] 的数据,对后半部分序列重复这一过程,即索的范围从mid+1到high。
- 如果low >high,说明索引范围[low, high]为空,则查找不成功。该算法被称为二分查找
"""
 
 
def binary_search(alist, item):
    """非递归"""
    first = 0
    last = len(alist) - 1
    found = False
    while first <= last and not found:
        mid = (first + last) // 2
        if alist[mid] == item:
            found = True
        else:
            if item < alist[mid]:
                last = mid - 1
            else:
                first = mid + 1
    return found
 
 
def binary_search_recursion(alist, item):
    if len(alist) > 0:
        mid = len(alist) // 2
        if alist[mid] == item:
            return True
        elif item < alist[mid]:
            return binary_search_recursion(alist[:mid], item)
        else:
            return binary_search_recursion(alist[mid + 1:], item)
    return False
 
 
if __name__ == '__main__':
    ret = binary_search_recursion([17, 20, 26, 31, 44, 54, 55, 65, 77, 69], 26)
    print(ret)
 
    ret = binary_search([17, 20, 26, 31, 44, 54, 55, 65, 77, 69], 68)
    print(ret)

以上就是python二分查找的原理,希望对大家有所帮助。更多Python学习指路:python基础教程

本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

五姑娘影院在线观看免费版电视剧| 《黏糊糊的你》动漫免费观看 | 蜜桃成熟时在线观看| 三个老头拥着躁我一晚| 妈妈我要亲亲你PPT| 亚洲一区在线| 《火车服务》免费观看| 小姨子边喂奶边和我做爰| 欧美风高级情侣ID| 王蒙多| 丈夫不在的日子中字头| 姐姐片多多免费高清电视剧| 初二学生小馒头| 妈妈爱看最经典十部电视剧| 瑜伽馆里的私密按摩效果怎么样| 《家访的老师》动漫在线观看| 女人尝试到更粗大的心理变化| 坤坤寒入桃子里电视剧| 《湿点》未增减板相似| 法国《监狱伦理3》| 舌头伸进去添的我爽高潮| 半夜洗澡被老头添一夜| 母亲和女婿免费高清电视剧| 老人玩小处雌女视频的意义| BOBO| 美女和帅哥一起努力生产豆浆的视.. | 王勉| 女子蹲坑排尿全过程| 真人版结婚之夜女性教育PPT| 男生将78申请女生的定眼| 公在厨房撕开奶罩吸奶头| 大叔与妹妹免费观看电视剧高清 | 《俄罗斯空姐2(俄罗斯航空)》| 《女仆教育》动漫第一季| 《十二寡妇肉床艳史》| 丝袜内衣女超薄全透明连身袜| 公在厨房撕开奶罩吸奶头| 美女两个球球抖动抓球球视频| 是空无限传媒免费观看电视剧 | 久久精品欧美一区二区三区| 土豆动漫