快排 也叫快速排序,非稳定,是最快的排序方法。其平均时间复杂度为O(nlogn),空间复杂度为O(1)
它的宗旨是这样的:随机选择一个元素,比它小的元素放在左边,比它大的元素放在它右边,然后再分别对左边的列表和右边的列表进行快速排序。
难点:如何可以实现把比它小的元素放在左边,比它大的元素放在右边。用到partion函数。代码如下:
def quick_sort(nums,left,right):
if left>right:
return
m=partion(nums,left,right)
quick_sort(nums,left,m-1)
quick_sort(nums,m+1,right)
return nums
def partion(nums,left,right):
key=nums[left]
while left<right:
while left<right and key<=nums[right]:
right-=1
nums[left]=nums[right]
while left<right and key>nums[left]:
left+=1
nums[right]=nums[left]
nums[left]=key
return left