测了一下两分搜索 和 线性搜索的运行时间,用的都是由小到大排序好的数组,搜最大的数
线性搜索 | |
数组大小 | 运行时间(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
时间: 2024-10-05 15:28:31