python快速排序的递归实现

更多排序算法请参见我的github:  https://github.com/zlsjsj/python-sort/tree/master


使用递归算法来实现快速排序,使得代码更加简洁

def quicksort(arr):
    if len(arr) <= 1:
        return arr   #当数组中只包含一个元素的时候,它肯定是有序的
    else:
        base = arr[0]
        less = [i for i in arr[1:] if i <= base]  #所有由小于等于基准值的元素组成的子数组
        more = [i for i in arr[1:] if i > base]   #所有由大于基准值的元素组成的子数组

        return quicksort(less) + [base] + quicksort(more)  #递归调用quicksort函数


print(quicksort([10, 2, 5, 9, 20]))

你可能感兴趣的:(python快速排序的递归实现)