当前位置: 首页 > 后端技术 > Python

python实现快速排序的两种方式

时间:2023-03-25 19:28:54 Python

代码环境:python3.6递归实现步骤:从序列中选取任意一个元素作为pivot,这里选择序列的最后一个元素,如果要更改,需要更改以下步骤因此;设置left和right两个指针,分别指向序列最左边和最右边的两个元素;从左边开始,找到第一个大于pivot的元素;向右切换,找到第一个小于pivot的元素;setleft交换此时right指向的元素;重复步骤1-4,直到left==right,将pivot和left对应的元素交换,使得左右区域被pivot划分,左边的元素小于pivot,右边的元素都大于pivot枢;对这两个分区递归重复步骤1-5,直到不能再分区为止,递归条件为start=pivot:right-=1ifleft!=right:mylist[left],mylist[right]=mylist[right],mylist[left]mylist[end],mylist[left]=mylist[left],pivotreturnleftdefquick_sort(mylist,start,end):"""mylist:待排序列表start:第一个元素索引ofmylistend:Mylistlastelementindex"""ifstart=pivot:right-=1ifleft!=right:mylist[left],mylist[right]=mylist[right],mylist[left]mylist[end],mylist[left]=mylist[left],pivot返回leftdefquick_sort(mylist):stack=Stack()start=0end=len(mylist)-1ifstart