其实 两分搜索 和 线性搜索 差距没那么大

测了一下两分搜索 和 线性搜索的运行时间,用的都是由小到大排序好的数组,搜最大的数

 

线性搜索  
数组大小 运行时间(s)
10000 0.01
100000 0.02
1000000 0.07
10000000 0.5
两分搜索  
数组大小 运行时间(s)
10000 0.01
100000 0.015
1000000 0.05
10000000 0.3
代码如下:
 
def sequentialSearch(a, item):
 
for i in a: 
 
         if i == item: return True
 
     return False
 
 
 
def binarySearch(a, item):
 
    l = 0
 
    r = len(a)-1
 
    m = m_v = 0
 
    while l <= r:
 
        m = (l+r)//2
 
        m_v = a[m_v]
 
        if m_v == item: return True
 
        else:
 
            if item < m_v: r = m-1
 
    else: l = m+1
 
return False
posted @ 2014-10-01 11:49  zy001  阅读(237)  评论(0)    收藏  举报