Python 快排

 1 def quick_sort(array,left,right):
 2     if left>=right:
 3         return
 4     low=left
 5     high=right
 6     key=array[low]#设置基准数
 7     while left<right:
 8         while left<right and array[right]>=key:#如果列表后边的数,比基准数大或相等,则前移一位直到有比基准数小的数出现
 9             right-=1
10         array[left]=array[right]#如找到,则把第j个元素赋值给第个元素i,此时表中i,j个元素相等
11         while left<right and array[left]<=key:#同样的方式比较前半区
12             left+=1
13         array[right]=array[left]
14     array[right]=key#做完第一轮比较之后,列表被分成了两个半区,并且i=j,需要将这个数设置回base
15     print(array)
16     # 递归前后半区
17     quick_sort(array,low,left-1)
18     quick_sort(array,left+1,high)
19     return array
20 print(quick_sort([2,13,6,11,1,5,16,22,7],0,8))

猜你喜欢

转载自www.cnblogs.com/xiaojinniu425/p/9430747.html