快速排序(python版)

197 阅读1分钟

python代码

import random

def quick_sort(numbers):
    if len(numbers)<=1:
        return numbers
    left,right,mid=[],[],[]
    pivot = random.choice(numbers)

    for i in numbers:
        if i == pivot:
            mid.append(i)
        elif i<pivot:
            left.append(i)
        else:
            right.append(i)
    print('left: {0}, \n mid: {1} ,\n right: {2} '.format(left,mid,right))

    return quick_sort(left) + mid + quick_sort(right)
    
numbers = [6,8,7,4,5,3,9,10,11,32,54,33,23,21,12]
# numbers = [1,5,4,3,2,6,7,9,8]
print(quick_sort(numbers))

###运行结果

参考 维基百科:zh.wikipedia.org/wiki/快速排序