Python版快速排序算法

2016-10-27 董付国 Python小屋 Python小屋

Python版冒泡排序算法请参考Python版冒泡法排序算法

Python版选择排序算法请参考Python版选择排序算法

from random import randint


def quickSort(lst, reverse=False):

    if len(lst) <= 1:

        return lst

    #默认使用最后一个元素作为枢点

    pivot = lst.pop()

    first, second = [], []

    #默认使用升序排序

    exp = 'x<=pivot'

    #reverse=True表示降序排列

    if reverse == True:

        exp = 'x>=pivot'

    for x in lst:

        first.append(x) if eval(exp) else second.append(x)

    #递归调用

    return quickSort(first, reverse) + [pivot] + quickSort(second, reverse)


lst = [randint(1, 1000) for i in range(10)]

print(quickSort(lst, True))