快速排序的思路其实很简单,在列表中选出一个数作为标准,再将列表中比它小的数放在左边,比它大的数放在右边,此时以该数的左边是一个无序列表,右边也是一个无序列表,此时再对该数左右两边再做一次上述操作即可
以下是代码演示
def quick_sort(data:list):
if len(data)<=1:
return data
mid=len(data)//2
left=[x for x in data if x<data[mid]]
middle=[x for x in data if x==data[mid]]
right=[x for x in data if x>data[mid]]
return quick_sort(left)+middle+quick_sort(right)
l1=[1,99,66,2,4,3,4,9,8,7,6,5]
sortedli=quick_sort(l1)
print(' '.join(map(str,sortedli)))