首页 > 编程语言 > 详细

python实现快速排序

时间:2020-08-01 15:55:26      阅读:97      评论:0      收藏:0      [点我收藏+]

思路:

例如有列表如下 li = [5,7,4,6,3,1,2,9,8]

1、取一个元素p(一般取第一个元素),使元素p归位

2、列表被p分成两部分,左边都比p小,左边都比p大

3、递归完成排序

技术分享图片

 

 

所以快速排序关键在于怎么让元素p归位?

归位思路:

1、先把5取出赋值赋值给tmp(可把原来5的位置看作一个空位),列表最右边定位right,最左边定位left。

2、先从列表最左边开始,若大于或者等于5,就把right向前移一位,即right - 1;若right小于5,则把right的值赋给当前列表的空位。(只有当赋值后才可执行下一步)

3、再把left的值与p相比,若小于或等于,就把left向后移一位,即left + 1;若left大于5,则把left的值赋给当前列表的空位。(只有当赋值后才可执行下一步)

4、重复2,3步。直到left不在小于right

 

实现代码:

整体快速排序

技术分享图片

 

 实现p归位

技术分享图片

 

 到此快速排序完毕

 

python实现快速排序

原文:https://www.cnblogs.com/zxdjy-blog/p/13414734.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!