概念
1、快速排序法,又称分割交换法,是泡沫排序法的改进。
基本思想
2、在数据中找到虚拟中间值,然后将所有计划排序的数据分为两部分。在这些数据中,小于中间值的数据放在左边,大于中间值的数据放在右边,然后以相同的方式处理左右数据,直到排序完成。
实例
defquick(data,start,end):#定义快速排序法函数 ifstart>end:#如果开始值大于结束值 return#直接退出程序 i,j=start,end result=data[start]#取虚拟中间值 whileTrue:#循环 whilej>ianddata[j]>=result:#从右向左寻找,当数量小于虚拟中间值时,停止循环 j=j-从右到左,从右到左,位置每次-1 whilei<janddata[i]<=result:#从左到右找到,如果发现的数量大于虚拟中间值,则停止循环 i+=1#从左到右寻找,位置每次+1 ifi<j:#i和j都停了,找到相应的位置,判断i<j data[i],data[j]=data[j],data[i]#交换位置i和j对应的值 elifi>=j:#判断i>=j #在交换虚拟中间值和j位置数时,虚拟中间值变成真正的中间值 data[start],data[j]=data[j],data[start] break#完成第一次排序,此时,中间值分为左右两侧 quick(data,start,i-1)#调用快速排序函数,然后快速排序左半部分的数据 quick(data,i+1,end)#调用快速排序函数,然后快速排序右半部分的数据 data=[6,1,2,7,9,3,4,5,108]定义列表并初始化 print("原始数据如下:") print(data)#输出原始数据 print("--------------------------------") quick(data,0,(len(data)-1)#调用快速排序,数据从位置0到数据长度-1 print("排序后的数据如下:") print(data)#输出排序后的数据 print("--------------------------------")
以上是python快速排序实现元素递增的方法,希望对大家有所帮助。更多Python学习指导:python基础教程
本文教程操作环境:windows7系统Python 3.9.1,DELL G3电脑。