当前位置: 代码迷 >> 综合 >> Python 实现二分法快速查找
  详细解决方案

Python 实现二分法快速查找

热度:47   发布时间:2024-02-22 09:46:05.0

 

算法:(设查找的数组期间为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]。每一次查找与中间值比较,可以确定是否查找成功,不成功当前查找区间缩小一半。递归找,即可

 

# -*- coding: utf-8 -*-
# @Time    : 2020/9/24 11:21 下午
# @Author  : Benjamin
# @File    : twoFind.py
# @Software: PyCharmdef BinarySearch(li,item):mid = len(li) // 2try:if item == li[mid]:return Trueelif item > li[mid]:return BinarySearch(li[mid + 1:], item)else:return BinarySearch(li[:mid], item)return Falseexcept Exception as e:return Falseif __name__ == "__main__":print(BinarySearch([1,2,3,34,56,57,78,87],34))

 

  相关解决方案