递归实现快速排序

def qs(arr): if len(arr) <= 1: return arr return qs([i for i in arr[1:] if i < arr[0]]) + arr[0:1] + qs([i for i in arr[1:] if i >= arr[0]])list0 = [1,2,5,3,7,9,33,2,25,99,0,-2,-66]print(qs(list0))

【递归实现快速排序】1,判断列表长度,如果只有1个元素或者是空列表,直接原样返回
2,取列表的第一个元素为参照物,遍历列表的其余每一个元素,比参照物小的放在参照物左边,大的放右边,递归操作,最后返回。
注意中间的参照物arr[0:1],不能写成arr[0]。因为arr[0]int类型,arr[0:1]是列表,可以参与列表运算。
选择排序:
L = [1,1,4,3,6,5,7,8,3,2,9,0]def select_sort(L, asc=True): for i in range(len(L)-1): for j in range(i+1, len(L)): if L[i] >= L[j]: L[i], L[j] = L[j], L[i] if asc: return L else: L.reverse() return L a = select_sort(L)

冒泡排序:
def bubble_sort(L, asc=True): for i in range(len(L)-1): for j in range(len(L)-1-i): if L[j] >= L[j+1]: L[j],L[j+1] = L[j+1],L[j] if asc: return L else: L.reverse() return L a = bubble_sort(L) print(a)

    推荐阅读