二分查找算法Python

二分查找算法Python,第1张

二分查找 二分查找是一种十分常用的查找方式,快速,高效。

## 注意:二分查找只针对于有序的数组进行查找

二分查找的时间复杂度为O(logn)
#实现二分查找算法,ele 表示要查找的目标元素,[p,q] 指定查找区域
def binary_search(arr,p,q,ele):
    #如果[p,q] 不存在,返回 -1
    if p > q:
        return -1
    #找到中间元素所在的位置
    mid = p + int( (q - p) / 2 )
    #递归的出口
    if ele == arr[mid]:
        return mid
    #比较 ele 和 arr[mid] 的值,缩小 ele 可能存在的区域
    if ele < arr[mid]:
        return binary_search(arr,p,mid-1,ele)
    else:
        return binary_search(arr,mid+1,q,ele)
arr = [10, 14, 19, 26, 27, 31, 33, 35, 42, 44]
#输出二叉查找元素 31 所在位置的下标
add = binary_search(arr, 0, 9, 31);
print(add)
输出结果:
>>5

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/943011.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-18
下一篇 2022-05-18

发表评论

登录后才能评论

评论列表(0条)

保存