当前位置: 首页 > 图灵资讯 > 行业资讯> python快速排序的运作过程

python快速排序的运作过程

来源:图灵python
时间: 2024-07-16 10:16:18

运作过程

1、从数列中挑出一个元素,称为基准,重新排序数列,所有元素都放在基准前面,比基准值小。

所有比基准值大的元素都放在基准值后面(相同的数字可以到达任何一侧)。分区结束后,基准处于几列的中间位置。这叫分区操作。

2、小于基准值元素的子数列和大于基准值元素的子数列排序。

3、递归的底部情况是数列的大小为零或一。

也就是说,它总是被排序好的。虽然它已经递回,但算法总是会结束,因为在每次迭代中,它至少会把一个元素放在它的最后位置。

实例

#快速排序-递归
defquick_sort(alist,begin,end):
#递归的终止条件是begin>=last,即数组大小为1或0
#递归终止时,数组已经排好了序列
ifbegin>=end:
return

else:
#以开头值为基准值,然后以基准值为边界对数组进行分区,继续调用分区后左右两部分的快速排序函数
mid_value=alist[begin]
low=begin
high=end
#从右到左寻找小于基准值的值,从左到右寻找大于基准值的值
whilelow<high:
#从右到左寻找小于基准值的值
whilelow<highandalist[high]>=mid_value:
high-=1
alist[low]=alist[high]

#从左到右寻找大于基准值的值
whilelow<highandalist[low]<mid_value:
low+=1
alist[high]=alist[low]

#循环结束时,low==high,这个位置是基准点的位置
alist[low]=mid_value
#快速排序Low左侧的元素
quick_sort(alist,begin,low-1)
quick_sort(alist,low+1,end)


if__name__='__main__':
alist=[54,26,93,17,77,31,44,55,20]
print(alist)
quick_sort(alist,0,len(alist)-1)
print(alist)

以上是python快速排序的操作过程,希望对大家有所帮助。更多Python学习指导:基础教程python基础教程

本文教程操作环境:windows7系统Python 3.9.1,DELL G3电脑。