算法之二分查找(1)

来源:互联网 发布:电子地图标注软件 编辑:程序博客网 时间:2024/06/04 01:07

原理

折半查找法也称为二分查找法,它充分利用了元素间的次序关系,采用分治策略,可在最坏的情况下用O(log n)完成搜索任务。

Python实现

# -*-coding:utf-8 -*-#Young#CreateOn:21:21/7/22/2015#Content: Bin Searchdef BinSearch(array,num,goalNum):    low = 0    high = num-1    while low<=high:        middle = (low+high)/2        if array[middle] == goalNum:            return middle        elif goalNum > array[middle]:            low = middle + 1        elif goalNum < array[middle]:            high = middle -1if __name__ == '__main__':    array = [1,2,3,4,5,6,7,8]    goal = 5    num = len(array)    print BinSearch(array,num,goal)

讨论

二分法使用之前还需排序,耗费时间还是线性时间?
解释:摘自《算法问题实战策略》

排序和搜索属于两个过程。

0 0
原创粉丝点击