源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

python二分法实现实例

  • 时间:2020-06-17 11:44 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:python二分法实现实例
[b]1.算法:([/b]设查找的数组期间为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]。每一次查找与中间值比较,可以确定是否查找成功,不成功当前查找区间缩小一半。递归找,即可。 [b]2.python代码:[/b]
[u]复制代码[/u] 代码如下:
#!/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); 注意:二分查找的前提必须待查找的序列有序。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部