##python的排序算法
#冒泡排序,选择排序,插入排序,快速排序+递归,希尔排序,归并排序,基数排序
# -*- coding: utf-8 -*-
# 排序算法
# 冒泡排序
# 默认为顺序 reversed 为True 时为逆序
def bubble_sort(l, reversed=None):
for j in range(len(l) - 1, -1, -1): # j为比较次数 遍历次数为len(l)-1
for i in range(j):
if (l[i] > l[i + 1] and reversed == None) or (l[i] < l[i + 1] and reversed == True):
l[i], l[i + 1] = l[i + 1], l[i] # 交换值,将较小的值往前移动
return l
# 另一种写法
# def bubble_sort(l,reversed=None):
# for j in range(len(l) - 1): #遍历次数
# for i in range(len(l) - j - 1): #比较次数
# if (l[i] > l[i + 1] and reversed == None) or (l[i] < l[i + 1] and reversed == True):
# l[i], l[i + 1] = l[i + 1], l[i]
# return l
# 将第一个数与后面的数相比较,如果比第一个数小,就调换位置,最后第一个数就是最小的,然后在从第二个数开始比较,
# 选择排序
def select_sort(l, reversed=None):
for i in range(len(l) - 1): # 遍历次数
for j in range(i + 1, len(l)): # 从索引 i+1 比较到最后一个数
if (l[i] > l[j] and reversed == None) or (l[i] < l[j] and rever