递归快速排序
def merge(num):
if len(num)==1 or len(num)==0:
return num
tmp=num[0]
low=0
high=len(num)-1
while low!=high:
#先从后往前看找到比目标值小的元素,将这个元素换到low的位置
while num[high]>=tmp and low < high:
high=high-1
num[low]=num[high]
#再从前往后看找到比目标值大的元素,将这个元素换到high的位置
while num[low]<tmp and low < high:
low=low+1
num[high]=num[low]
num[low]=tmp#当low和high重合的时候,说明已经找到目标值的位置,将目标值赋值给这个位置
num[:low]=merge(num[:low])#再递归进去对左右两半部分进行继续快速排序
num[high+1:]=merge(num[high+1:])
return num
merge(nums)