冒泡
def bubble_sort(array):
n = len(array)
for i in range(n): # i从0到n
for j in range(1, n-i): # 1开始,即j-1=0开始
if array[j-1] < array[j]:
array[j-1], array[j] = array[j], array[j-1]
return array
选择
def select_sort(array):
n=len(array)
for i in range(n):
mindex=i
for j in range(i+1,n):
if array[mindex] > array[j]:
mindex = j
array[i], array[mindex]=array[mindex], array[i]
return array
插入
def insert_sort(array):
for i in range(1, len(array)):
key = array[i]
j = i - 1
while j >= 0 and key < array[j]:
array[j + 1] = array[j]
j -= 1
array[j + 1] = key
return array
def insert(l):
for i in range(1,len(l)):
key=l[i]
for j in range(i):
if l[j]>key:
l.pop(i)
l.insert(j,key)
break
return l
归并
def mergeSort(arr):
import math
if(len(arr)<2):
return arr
middle = math.floor(len(arr)/2)
left, right = arr[0:middle], arr[middle:]
return merge(mergeSort(left), mergeSort(right))
def merge(left,right):
result = []
while left and right:
if left[0] <= right[0]:
result.append(left.pop(0))
else:
result.append(right.pop(0))
while left:
result.append(left.pop(0))
while right:
result.append(right.pop(0))
return result
快速
def quick(l):
if len(l)<2:
return l
par=l[0]
low=[x for x in l[1:] if x<=par]
high=[x for x in l[1:] if x>par]
return quick(low)+[par]+quick(high)
转载:https://blog.csdn.net/qq_40415753/article/details/102553341
查看评论