您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

python二分法实现实例

2024/4/23 9:14:29发布30次查看
1.算法:(设查找的数组期间为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]2.python代码:
复制代码 代码如下:
#!/usr/bin/python
# -*- coding: utf-8 -*-def binarysearch(array,t):
    low = 0
    height = len(array)-1
    while low         mid = (low+height)/2
        if array[mid]             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);
注意:二分查找的前提必须待查找的序列有序。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product