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中使用Boolean操作符做真值测试实例
Jan 30 Python
Java分治归并排序算法实例详解
Dec 12 Python
python实现简易版计算器
Jun 22 Python
python从子线程中获得返回值的方法
Jan 30 Python
python3.4 将16进制转成字符串的实例
Jun 12 Python
python自带tkinter库实现棋盘覆盖图形界面
Jul 17 Python
Python操作SQLite数据库过程解析
Sep 02 Python
简单介绍django提供的加密算法
Dec 18 Python
PyTorch加载预训练模型实例(pretrained)
Jan 17 Python
python计算Content-MD5并获取文件的Content-MD5值方式
Apr 03 Python
python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
Apr 24 Python
Python中os模块的简单使用及重命名操作
Apr 17 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
星际流派综述
2020/03/04 星际争霸
实现“上一页”和“下一页按钮
2006/10/09 PHP
PHP中遍历stdclass object的实现代码
2011/06/09 PHP
PHP简单字符串过滤方法示例
2016/09/04 PHP
jQuery 学习 几种常用方法
2009/06/11 Javascript
JQUERY1.6 使用方法四 检测浏览器
2011/11/23 Javascript
js弹出层(jQuery插件形式附带reLoad功能)
2013/04/12 Javascript
JavaScript设计模式之代理模式介绍
2014/12/28 Javascript
ECMA5数组的新增方法有哪些及forEach()模仿实现
2015/11/03 Javascript
有关文件上传 非ajax提交 得到后台数据问题
2016/10/12 Javascript
ES6使用export和import实现模块化的方法
2018/09/10 Javascript
详解关于React-Router4.0跳转不置顶解决方案
2019/05/10 Javascript
微信小程序实现元素渐入渐出动画效果封装方法
2019/05/18 Javascript
js前端如何写一个精确的倒计时代码
2019/10/25 Javascript
微信小程序 bindtap 传参的实例代码
2020/02/21 Javascript
微信小程序实现watch监听
2020/06/04 Javascript
[02:02]2018DOTA2亚洲邀请赛Mineski赛前采访
2018/04/04 DOTA
安装dbus-python的简要教程
2015/05/05 Python
python爬取盘搜的有效链接实现代码
2019/07/20 Python
pytorch 预训练层的使用方法
2019/08/20 Python
tensorflow自定义激活函数实例
2020/02/04 Python
Matplotlib使用Cursor实现UI定位的示例代码
2020/03/12 Python
一款纯css3实现的鼠标经过按钮特效教程
2014/11/09 HTML / CSS
详解css position 5种不同的值的用法
2019/07/30 HTML / CSS
HTML块级标签汇总(小篇)
2016/07/13 HTML / CSS
Homestay中文官网:全球寄宿家庭
2018/10/18 全球购物
最便宜促销价格订机票:Airpaz(总部设在印尼,支持中文)
2018/11/13 全球购物
意大利单身交友网站:Meetic
2020/07/12 全球购物
C#可否对内存进行直接的操作
2015/02/26 面试题
市场营销专业个人自荐信格式
2013/09/21 职场文书
给同学的道歉信
2014/01/16 职场文书
物理系毕业生自荐书范文
2014/02/22 职场文书
五水共治一句话承诺
2014/05/30 职场文书
公司内部升职自荐信
2015/03/27 职场文书
呼兰河传读书笔记
2015/06/30 职场文书
TypeScript中条件类型精读与实践记录
2021/10/05 Javascript