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

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

 更新時間:2013年11月21日 11:31:07   作者:  
這篇文章主要介紹了python二分法的實現(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]。每一次查找與中間值比較,可以確定是否查找成功,不成功當前查找區(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.時間復(fù)雜度:O(log2n);

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

相關(guān)文章

最新評論

文山县| 青海省| 沙坪坝区| 同心县| 剑阁县| 贺兰县| 红桥区| 巍山| 襄城县| 确山县| 赫章县| 广南县| 临湘市| 涡阳县| 游戏| 吉林省| 邢台市| 志丹县| 屏边| 东乌珠穆沁旗| 健康| 平利县| 万年县| 麻阳| 高平市| 金华市| 博湖县| 南郑县| 周宁县| 彰化市| 西藏| 宣城市| 比如县| 泗水县| 象山县| 玛纳斯县| 乌拉特中旗| 淳化县| 晋宁县| 湘乡市| 婺源县|