千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:南昌千锋IT培训  >  技术干货  >  python快速排序的运作过程

python快速排序的运作过程

来源:千锋教育
发布人:xqq
时间: 2023-11-10 21:44:03

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培训机构:千锋教育。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

python快速排序的运作过程

2023-11-10

python如何创建数值列表

2023-11-10

python怎么把/r/n替换成/n?

2023-11-10

最新文章NEW

pythonpyenv是什么

2023-11-10

python异常中常见关键字

2023-11-10

python怎么转换字符串大小写

2023-11-10

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>