python快排算法详解


Posted in Python onMarch 04, 2019

快排是python经典算法之一。

1、下面讲解的是什么是快排和快排的图示。

python快排算法详解

2、快排是一种解决排序问题的运算方法。

python快排算法详解

3、快排的原理:在数组中任意选择一个数字作为基准,用数组的数据和基准数据进行比较,比基准数字打的数字的基准数字的右边,比基准数字小的数字在基准数字的左边,

第一次排序之后分为比基准数据大或比基准数据小两个部分,用刚开始的方法继续排序,直到每个排序分组中只有一个数据或没有数据为止。

python快排算法详解

4、下面以[ 7 91 23 1 6 3 79 2 ]数组为例子,进行快排运算。

python快排算法详解

5、选基准:选择数组里的第一个数字(可以选择任意数字)为基准数字

python快排算法详解

6、从j指针开始和基准数据比较之后,其中2比7小,所以将2排到7的左边。此时进行了交叉移动,所以下一个比较的是i指针对应的数据。

python快排算法详解

7、i指针与基准数据7比较,其中91比7大,所以将91排到右边,此时又一次进行了交叉移动,所以下一个比较的是j指针对应的数据。

python快排算法详解

8、j指针与基准数据7比较,其中79比7大,所以将79排到右边,此时是同侧移动,所以下一个比较的是j指针对应的数据。

python快排算法详解

python快排算法详解

9、j指针与基准数据7比较,其中3比7小,所以将3排到左边,此时又一次进行了交叉移动,所以下一个比较的是i指针对应的数据。

python快排算法详解

python快排算法详解

10、i指针与基准数据7比较,其中23比7大,所以将23排到右边,此时又一次进行了交叉移动,所以下一个比较的是j指针对应的数据。

python快排算法详解

11、j指针与基准数据7比较,其中6比7小,所以将6排到左边,此时又一次进行了交叉移动,所以下一个比较的是i指针对应的数据。

python快排算法详解

12、i指针与基准数据7比较,其中1比7小,所以将1排到右边,此时所有的数据都进行了一次排序。

python快排算法详解

13、第一趟排序之后的结果如下。根据上面的方法,基准数据的左右两侧继续快排,直到数组没有数据或数组数据为0

python快排算法详解

14、最后的排序结果如下图所示:

python快排算法详解

Python 相关文章推荐
python版本的读写锁操作方法
Apr 25 Python
Python 操作MySQL详解及实例
Apr 30 Python
详解python eval函数的妙用
Nov 16 Python
Python排序搜索基本算法之选择排序实例分析
Dec 09 Python
对python创建及引用动态变量名的示例讲解
Nov 10 Python
Python人工智能之路 之PyAudio 实现录音 自动化交互实现问答
Aug 13 Python
Python PIL图片添加字体的例子
Aug 22 Python
分享一个pycharm专业版安装的永久使用方法
Sep 24 Python
pytorch实现特殊的Module--Sqeuential三种写法
Jan 15 Python
Python 中的pygame安装与配置教程详解
Feb 10 Python
Python tkinter布局与按钮间距设置方式
Mar 04 Python
python简单验证码识别的实现过程
Jun 20 Python
Django 内置权限扩展案例详解
Mar 04 #Python
python三方库之requests的快速上手
Mar 04 #Python
django的ORM模型的实现原理
Mar 04 #Python
Python中按值来获取指定的键
Mar 04 #Python
python实现合并两个排序的链表
Mar 03 #Python
Python给图像添加噪声具体操作
Mar 03 #Python
django配置连接数据库及原生sql语句的使用方法
Mar 03 #Python
You might like
用PHP产生动态的影像图
2006/10/09 PHP
php strtotime 函数UNIX时间戳
2009/01/14 PHP
深入浅析PHP7.0新特征(五大新特征)
2015/10/29 PHP
老司机传授Ubuntu下Apache+PHP+MySQL环境搭建攻略
2016/03/20 PHP
在IE下:float属性会影响offsetTop的取值
2006/12/22 Javascript
点击进行复制的JS代码实例
2013/08/23 Javascript
jquery checkbox实现单选小例
2013/11/27 Javascript
Node.js中的事件驱动编程详解
2014/08/16 Javascript
高性能JavaScript DOM编程(1)
2015/08/11 Javascript
利用JavaScript实现拖拽改变元素大小
2016/12/14 Javascript
jQuery实现动态添加、删除按钮及input输入框的方法
2017/04/27 jQuery
Vue和Bootstrap的整合思路详解
2017/06/30 Javascript
vue axios同步请求解决方案
2017/09/29 Javascript
使用react实现手机号的数据同步显示功能的示例代码
2018/04/03 Javascript
Vue实现PopupWindow组件详解
2018/04/28 Javascript
详解vue-cli中模拟数据的两种方法
2018/07/03 Javascript
详解Vue组件之作用域插槽
2018/11/22 Javascript
详解在网页上通过JS实现文本的语音朗读
2019/03/28 Javascript
Vue常用的全选/反选的示例代码
2020/02/19 Javascript
JS实现斐波那契数列的五种方式(小结)
2020/09/09 Javascript
Python 登录网站详解及实例
2017/04/11 Python
pandas string转dataframe的方法
2018/04/11 Python
Python数据相关系数矩阵和热力图轻松实现教程
2020/06/16 Python
python爬虫要用到的库总结
2020/07/28 Python
使用phonegap克隆和删除联系人的实现方法
2017/03/31 HTML / CSS
您的健身减肥和健康饮食专家:vitafy
2017/06/06 全球购物
美国摩托车头盔、零件、齿轮及配件商店:Cycle Gear
2019/06/12 全球购物
Made in Design英国:设计家具、照明、家庭装饰和花园家具
2019/09/24 全球购物
什么是.net的Remoting技术
2016/07/08 面试题
行政专员岗位职责
2014/01/02 职场文书
土木建筑学生自我评价
2014/01/14 职场文书
离婚被告答辩状
2015/05/22 职场文书
工作证明格式范文
2015/06/15 职场文书
2015年秋季运动会广播稿
2015/08/19 职场文书
2016应届毕业生实习心得体会
2015/10/09 职场文书
python实现求纯色彩图像的边框
2021/04/08 Python