# 递归实现二分查找deferfen_search(l, n, left=0, right=None):if right isNone:
right =len(l)-1if left <= right:
mid =(left + right)//2if n > l[mid]:
left = mid +1return erfen_search(l, n, left, right)elif n < l[mid]:
right = mid -1return erfen_search(l, n, left, right)elif n == l[mid]:print('找到了')return mid
else:print('没有这个数')returnif __name__ =='__main__':
L =[1,2,3,4,5,6,7]
n =2
ret = erfen_search(L, n)print(ret)# 快排defquick_sort(A, l, r):if l < r:
pivot = A[l]
left = l
right = r
while left < right:while A[right]> pivot and left < right:
right -=1# 左右不能相等,相等的话会进行移动,导致数组越界if left < right:
A[left]= A[right]
left +=1while A[left]<= pivot and left < right:
left +=1if left < right:
A[right]= A[left]
right -=1
A[left]= pivot
quick_sort(A, l, left-1)
quick_sort(A, left+1, r)if __name__ =='__main__':
S =[0,2,1,6]
quick_sort(S,0,3)print(S)# 冒泡排序defmaopao_sort(l):for i inrange(len(l)-1):for j inrange(len(l)-1- i):if l[j]> l[j+1]:
l[j], l[j+1]= l[j+1], l[j]return l
if __name__ =='__main__':
L =[3,1,2,4,6]
ret = maopao_sort(L)print(ret)