'''
冒泡排序的概念:
取出列表中的当前值与下一个值进行比较,比较完成后,向列表的最后方或最前方浮动(一次浮动一个位置)
外层for循环->控制列表中余下比较元素的个数
内层for循环->控制当前循环比较的元素
'''
#冒泡排序
def maoPao(infos):
for i in range(len(infos) - 1):
for j in range(len(infos) - 1 - i):
if infos[j] > infos[j+1]:
infos[j],infos[j+1] = infos[j+1],infos[j]
return infos
#列表lists使用冒泡从小到大排序
lists = [33,12,8,88,10,6,5,18]
res = maoPao(lists)
print(res)
'''
快排的概念:
取出需要排序的列表中的第一个(下面案例为取出第一个)或者最后一个元素,作为参照元素
使用for循环,拿列表中第[1:last](第二个到最后一个元素)依次和列表的第一个元素进行比较
如果for循环的当前元素比第一个元素大,则定义一个max列表,并把当前元素加入其中
如果for循环的当前元素比第一个元素小,则定义一个min列表,并把当前元素加入其中
若返回从小到大的排序,则使用 |min + 第一个值(列表中的比较元素)+ max| 返回
注意返回列表中的min和max列表,应使用递归函数,再次调用当前排序函数
最后在排序函数逻辑开始的地方
判断传入的列表(需要排序的列表)长度是否<=1(小于等于1)
如果满足<=1
则返回正在递归中的传入列表
'''
#快速排序(快排)
#普通写法
def quick(infos):
if len(infos) <= 1:
return infos
mins = []
maxs = []
for v in infos[1:]:
if v > infos[0]:
maxs.append(v)