思路
将数组的第一个元素作为中间值(枢轴),将数组中所有小于枢轴的值放在枢轴的左边成为左子数组;同理,大于枢轴的放在枢轴的右边成为右子数组。之后对左右子数组重复进行对原数组进行的操作,当左或右数组为空时返回。
代码实现
#快速排序 递归实现
def FastPaixu(List):
if len(List)<=1:
return List
center=List[0]
clist=[center]
rchild=[]
lchild=[]
for i in List[1:]:
if i < center:
lchild.append(i)
else:
rchild.append(i)
return FastPaixu(lchild)+clist+FastPaixu(rchild)