最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python二分法實(shí)現(xiàn)實(shí)例

 更新時(shí)間:2013年11月21日 11:31:07   作者:  
這篇文章主要介紹了python二分法的實(shí)現(xiàn)代碼,大家可以參考使用

1.算法:(設(shè)查找的數(shù)組期間為array[low, high])

(1)確定該期間的中間位置K
(2)將查找的值T與array[k]比較。若相等,查找成功返回此位置;否則確定新的查找區(qū)域,繼續(xù)二分查找。區(qū)域確定如下:
a.array[k]>T 由數(shù)組的有序性可知array[k,k+1,……,high]>T;故新的區(qū)間為array[low,……,K-1]
b.array[k]<T 類似上面查找區(qū)間為array[k+1,……,high]。每一次查找與中間值比較,可以確定是否查找成功,不成功當(dāng)前查找區(qū)間縮小一半。遞歸找,即可。

2.python代碼:

復(fù)制代碼 代碼如下:

#!/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)

結(jié)果:57

3.時(shí)間復(fù)雜度:O(log2n);

注意:二分查找的前提必須待查找的序列有序。

相關(guān)文章

最新評論

忻州市| 新泰市| 望谟县| 平凉市| 保亭| 南乐县| 清徐县| 苍南县| 凌云县| 宜宾县| 玛沁县| 越西县| 金阳县| 仁布县| 开平市| 锡林郭勒盟| 克什克腾旗| 宁化县| 肃南| 石城县| 石楼县| 苗栗市| 岐山县| 临邑县| 西藏| 西安市| 浮梁县| 丰镇市| 炎陵县| 孝义市| 章丘市| 神木县| 兴安盟| 灵川县| 西吉县| 饶阳县| 社旗县| 延安市| 孙吴县| 成武县| 习水县|