标签:def 数组 排序 下标 快速 放大 highlight int print
快速排序的逻辑
用递归的方法:
1 边界条件,数组长度为1,返回list
2 list =( list_left )+ ( mid ) +( list_right )
注意个细节,mid是一个元素值,不是下标
# 快速排序
def quick_sort(l):
    if len(l) < 2:
        return l
    # 先取一个中间值
    mid = l.pop(len(l) // 2)
    left = []  # 存放小于m的数
    right = []  # 存放大于m的数
    for n in l:
        if n < mid:
            left.append(n)
        else:
            right.append(n)
    # print(‘left:‘,left)
    # print(‘right:‘,right)
    # 递归
    return quick_sort(left) + [mid] + quick_sort(right)  # 次一级的通项,公式,最重要
ll = [4, 5, 9, 7, 6, 8, 2, 1, 3]
print(quick_sort(ll))
标签:def 数组 排序 下标 快速 放大 highlight int print
原文地址:https://www.cnblogs.com/timothyzhao/p/14038087.html