**
算法实现 for
1. Linear search
array = [4,2,15,3,7,6,5,9]
z = 6
def Linear_search(z):
for i in range(len(array)):
if array[i] == z:
return i
return -1
print(Linear_search(z))
2. Selection sort
def Selection_sort(array):
for i in range(len(array)):
nextMin = array[i]
nextMinIndex = i
for j in range(i+1,len(array)):
if array[j] < nextMin :
nextMin = array[j]
nextMinIndex = j
array[nextMinIndex] = array[i]
array[i] = nextMin
return array
print(Selection_sort(array))
3. Binary search
a = [1,2,3,4,5,6,7,8]
val = 6
def Binary_search(val,array):
l = 0
r = len(array) -1
while (l<=r):
m = int((l+r)/2)
if(array[m] < val):
l = m+1
elif (array[m] > val):
r = m-1
else:
return m
return -1
print(Binary_search(val,a))
4. Recursive_binary_search
aa = [1,2,3,4,5,6,7,8]
val = 6
def Recursive_binary_search(X,z,l,r):
if l > r:
return -1
m = int((l+r)/2)
if X[m] < z:
return Recursive_binary_search(X,z,m+1,r)
elif X[m]>z:
return Recursive_binary_search(X,z,l,m-1)
else:
return m
print(Recursive_binary_search(aa,val,0,len(aa)))