递归实现快排算法

如列表[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]

 

posted @ 2020-07-15 10:51  夏晓旭  阅读(563)  评论(0)    收藏  举报