冒泡排序
def bubble (arr):
flag=False
for j in range(len(arr)-1):
for i in range(len(arr)-1-j):
if arr[i]>arr[i+1]:
arr[i],arr[i+1] = arr[i+1],arr[i]
flag=True
if not flag:
return arr
return arr
选择排序
def chooice(arr):
lg=len(arr)
for j in range(lg-1):
min=j
for i in range(j+1,lg):
if arr[min]>arr[i]:
min=i
arr[min],arr[j]=arr[j],arr[min]
return arr
插入排序
def insert_order(arr):
for i in range(1,len(arr)):
j=i-1
while j>=0 :
if arr[j+1]<arr[j]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
j=j-1
快排
def get_mid(arr,left,right):
mid=arr[left]
while left<right:
while left<right and arr[right]>=mid:
right-=1
arr[left]=arr[right]
while left<right and arr[left]<=mid:
left+=1
arr[right] = arr[left]
arr[right]=mid
return right
def quick_sort(arr,left,right):
if left > right:
return
par=get_mid(arr,left,right)
quick_sort(arr,left,par-1)
quick_sort(arr,par+1,right)
二分查找
def binary_search(arr,v):
mid=len(arr)//2
if arr[mid]==v:
return True
if len(arr)==1:
return False
if arr[mid]>v:
return binary_search(arr[:mid],v)
else:
return binary_search(arr[mid+1:],v)