快速排序python实现
def quicksort(arr):
if len(arr)<2:
return arr #基线条件
else:
base=arr[0] #递归条件
less=[i for i in arr[1:] if i<=base]
greater=[i for i in arr[1:] if i>base]
return quicksort(less)+[base]+quicksort(greater)
print(quicksort([2,7,5,9]))
快速排序的思想采用了递归的思想,需要找出基线条件和递归条件,基线条件是为空或只含一个元素的数组是有序的
base值的选取为避免不均匀分割的情况,我们可以通过中值准则选取base,比如选取数组中的第一个值,最后一个值和中间值,然后选取三个值中的中数作为base
浙公网安备 33010602011771号