二分法
def sort(arr,num):
i,j = 0,len(arr)-1
while i<=j:
mid = (i+j) // 2
if arr[mid]<num:
i = mid+1
elif arr[mid]>num:
j = mid-1
else:
return True
return False
选择排序
def sort(arr):
for k in range(len(arr)-1):
for i in range(k+1,len(arr)):
if arr[i] < arr[k]:
arr[i],arr[k] = arr[k],arr[i]
return arr
冒泡排序
def sort(arr):
for i in range(len(arr)-1):
flag = True
for j in range(len(arr)-i-1):
if arr[j]>arr[j+1]:
arr[j],arr[j+1] = arr[j+1],arr[j]
flag = False
if flag:
break
return arr
插入排序
def sort(arr):
for i in range(1,len(arr)):
tmp = arr[i]
j = i-1
while j>=0:
if arr[j]>tmp:
arr[j+1] = arr[j]
else:
break
j -= 1
arr[j+1] = tmp
return arr
快速排序
def sort(arr,a,b):
if a<b:
i,j = a,b
tmp = arr[i]
while i!=j:
while arr[j]>=tmp and i!=j:
j -= 1
arr[i] = arr[j]
while arr[i]<=tmp and i!=j:
i += 1
arr[j] = arr[i]
arr[i] = tmp
sort(arr,a,i-1)
sort(arr,i+1,b)