


Python培训
400-996-5531
快速排序采用的是算法思想中的分治算法,在一次排序后将序列分成两部分,其中一部分的数据比另外一部分的数据都小,然后利用递归分别对两部分数据进行排序,以此达到整个数据变成有序序列;
def quick_sort(list,left,right):
if left >= right:
return list
key = list[left] #将左边第一位定位基准数,以此数将序列分为两部分
low = left
high = right
while left!=right: #从最右边开始查(一定要从最右边开始查),查找比基准值小的数
while left <right and list[right]>=key:
right -= 1
list[left] = list[right] #从最左边开始查,查找比基准值大的数
while left <right and list[left]<= key:
left += 1
list[right] = list[left]
list[right] = key
#分别对两部分数据再调用quick_sort函数
quick_sort(list,low,left-1)
quick_sort(list,left+1,high)
return list
lis = [1,2,5,3,8,29,3]
n = len(lis)
quick_sort(lis,0,n-1)返回结果:[1, 2, 3, 3, 5, 8, 29]
填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!
Copyright © 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有