全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货  >  详情

python快速排序的运作过程

来源:千锋教育
发布人:xqq
2023-11-13

推荐

在线提问>>

python快速排序的运作过程

运作过程

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

#从右往左寻找小于基准值的值

whilelow=mid_value:

high-=1

alist[low]=alist[high]

#从左往右寻找大于基准值的值

whilelow

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学习教程请关注IT培训机构:千锋教育。

相关文章

python中如何应用视图函数?

python根据键值(value)返回键(key)

python中pickle模块是什么?

python解析json文件方法

python中如何dataframe转换为ndarray?

开班信息 更多>>

课程名称
全部学科
咨询

HTML5大前端

Java分布式开发

Python数据分析

Linux运维+云计算

全栈软件测试

大数据+数据智能

智能物联网+嵌入式

网络安全

全链路UI/UE设计

Unity游戏开发

新媒体短视频直播电商

影视剪辑包装

游戏原画

    在线咨询 免费试学 教程领取