python的快速排序算法。
代码如下:
def quick_sort(numbers):
if len(numbers) > 1: # 长度为2及以上的情况
mid = numbers[0] # 假设numbers数列第一个numbers[0]就是就是中值mid
left, right = [], []
numbers.remove(mid) # 移除numbers[0]
for number in numbers:
if number > mid:
right.append(number) # 右边列表right,放大于mid的数
else:
left.append(number) # 左边数列left,放不大于中值mid的数
return quick_sort(left) + [mid] + quick_sort(right)
# left和right需要递归
else: # 数列numbers为空或者一个元素时候
return numbers
if __name__ == '__main__':
numbers = [2, 37, 21, 99, 51, 3, 4, 57, 9, 9, 45, 85, 66, 23, 13]
numbers = quick_sort(numbers)
print(numbers)
代码若不足请指教。