首页 > 代码库 > 其实 两分搜索 和 线性搜索 差距没那么大

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

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

 

线性搜索 
数组大小运行时间(s)
100000.01
1000000.02
10000000.07
100000000.5
两分搜索 
数组大小运行时间(s)
100000.01
1000000.015
10000000.05
100000000.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

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