递归实现快排算法

如列表[1,-1,2,10,5,0,3]

快排的思路是先确定一个基数base=1

然后递归实现把大于base的放右边,小于等于base的放左边

def quick_sort(arr):
    if len(arr) <= 1:
        return arr

    base = arr[0]
    less = [i for i in arr[1:] if i<base]
    greater = [i for i in arr[1:] if i>=base]
    return quick_sort(less) + [base] + quick_sort(greater)


s= [-1,2,3,-2,0,-3]
print("s:",s)
print("quick_sort(s):",quick_sort(s))

结果:

s: [-1, 2, 3, -2, 0, -3]
quick_sort(s): [-3, -2, -1, 0, 2, 3]
原文地址:https://www.cnblogs.com/xiaxiaoxu/p/13304256.html