排序之快排

def QuickSort(left,right,lis:list):

    if left >= right:
        return
    # 判断标准就是每次的left
    point, start, end = lis[right], right, left
    # 每次都是拿左右指针是否相遇作为判断标准
    while left < right:
        # 如果当前值大于 指标 说明应该在右边
        while left < right and lis[left] <= point:
            left += 1
        while left < right and lis[right] >= point:
            right -= 1
        lis[left], lis[right] = lis[right], lis[left]
    # 交换当前标准值的位置
    lis[start],lis[right] = lis[right], lis[start]
    # 这个时候 游标是移动了的
    QuickSort(end, left-1, lis)
    QuickSort(left+1, start, lis)

    return lis

快排:双指针+递归

  (递归写八皇后很有意思)

原文地址:https://www.cnblogs.com/zengmu/p/12824924.html