具体算法描述如下:
1.从数列中挑出一个元素,称为 “基准”(pivot);
2.重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。
在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作;
3.递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序。
def quick_sort(list,start,end): #对每一个元素进行排序
count=1
key=list[start]
for i in range(start+1, end+1):
if list[i]<=key: #当遇到的值比基准值小的时候进行互换操作,并且count执行加一操作
temp=list[i]
list[i]=list[start+count]
list[start+count]=temp
count+=1
for i in range(count): #将所有元素整体前移一位
list[start+i] = list[start+i+1]
list[start+count-1] = key #将基准值插入到指定位置 用来分隔两个区间
return start+count-1 #返回下标
def arr_sort(list,first,last):