快速排序将数组进行分解,对两个子问题进行排序。
快速排序首先要找到划分数组的基准,我们以数组的第一个元素为例。
然后将数组划分为大于该基准的数组与小于该基准的数组。
分别再对两个子数组进行快速排序。
python代码如下:
def quicksort(list):
if len(list)<2:
return list
else:
pivot=list[0]
less=[x for x in list[1:] if x <=pivot]
greater=[y for y in list[1:] if y>pivot]
return quicksort(less)+[pivot]+quicksort(greater)
测试结果:
print quicksort([6,2,3,9,7,5,61])
[2, 3, 5, 6, 7, 9, 61]