python如何进行排序,快速排序python实现
运作过程
1.从序列中挑选出一个元素,称为基准,并对序列重新排序。所有小于基准值的元素都放在基准值的前面。
所有大于基准值的元素都放在基准的后面(相同的数字可以在两边)。在这个分区结束后,基准位于系列的中间。这叫做分区操作。
2.对小于参考值的元素子系列和大于参考值的元素子系列进行排序。
3.递归的基本情况是序列的大小为零或一。
也就是永远排序了。虽然它一直在递归,但这个算法总会结束,因为在每次迭代中,它至少会将一个元素放到它的最后一个位置。
实例
#快速排序-递归
defquick_sort(列表,开始,结束):
#递归的终止条件是begin=last,即数组大小为1或0。
#当递归终止时,数组已经有序。
ifbegin=end:
返回
else:
#以初始值为参考值,然后以参考值为边界对数组进行分区,分区后继续对左右部分调用快速排序函数。
mid _ value=list[begin]
低=开始
高=结束
#从右到左查找小于参考值的值,从左到右查找大于参考值的值。
whilelowhigh:
#从右向左查看小于参考值的值
while whighandalist[high]=mid _ value :
高=1
列表[低]
#从左到右查找大于参考值的值
while whighandalist[low]mid _ value :
低=1
列表[高]
#循环结束时,low==high,这是参考点的位置。
list[low]=中间值
#对low左侧的元素执行快速排序
quick _ sort(list,begin,low-1)
quick_sort(列表,低位1,结束)
if__name__==__main__:
list=[54,26,93,17,77,31,44,55,20]
打印(列表)
quick _ sort(list,0,len(list)-1)
Print(alist)以上是python快速排序的操作流程。希望对你有帮助。更多python学习方向:Python基础课程
本教程运行环境:windows7系统,Python 3.9.1,DELL G3电脑。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。