counts = [98,12,3,4,1,4,9,3821]
minNum = min(counts)
#print minNum
minNum_index = counts.index(minNum)
#print minNum_index
#找出列表中最小的2个元素
def find_two_smallest(L):
smallest = min(L)
min_index = L.index(smallest)
L.remove(smallest)
smallest2 = min(L)
min_index2 = L.index(smallest2)
L.remove(smallest2)
L.insert(min_index,smallest)
L.insert(min_index2,smallest2)
if min_index <= min_index2:
min_index2 +=1
return (smallest,smallest2)
ansList = find_two_smallest(counts)
print ansList
#第二种方式
def find_two_smallest2(L):
tempList = L[:]
tempList.sort()
return (tempList[0],tempList[1])
ansList2 = find_two_smallest2(counts)
print ansList2
#搜索
def linear_search(v,L):
i = 0
while i<len(L) and L[i] != v:
i = i+1
return i
print linear_search(7,counts)
print linear_search(12,counts)
#计算花费的时间
import time
def linear_search2(v,L):
i = 0
for value in L:
if value == v:
return i
i = i+1
return len(L)
L = range(1000001)
time1 = time.time()
linear_search(7,L)
linear_search(500000,L)
time2 = time.time()
print (time2-time1)*1000
L = range(10)
print L
#二分搜索
def binary_search(v,L):
i = 0
j = len(L) -1
while i <= j:
m = (i+j)/2
if(L[m]<v):
i = m +1
else:
j = m - 1
if 0 <= i <len(L) and L[i] == v:
return i
else:
return -1
#测试
VALUES = [1,3,4,6,8,9,10]
assert binary_search(1,VALUES) == 0
assert binary_search(2,VALUES) == -1