python实现经典排序
冒泡排序
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)