快速排序采用的是分而治之的思想,选择待排序列中的一个元素作为基准值,将其余元素分为两组:小于基准值的元素和大于基准值的元素,对新生成的两组序列按照同样的方法排序直到序列中元素数量为空或只包含一个元素,快速排序的时间复杂度为O( n log n n\log_n nlogn)。
def quicksort(array):
if len(array)<2:
return array
else:
pivot=array[0]
less=[i for i in array[1:] if i<=pivot]
greater=[i for i in array[1:] if i>pivot]
return quicksort(less)+[pivot]+quicksort(greater)
print(quicksort([4,1,12,7,3]))