当前位置: 首页 > 图灵资讯 > 行业资讯> python快速排序实现元素递增

python快速排序实现元素递增

来源:图灵python
时间: 2024-07-30 09:50:55

概念

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电脑。