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爬虫框架Scrapy安装使用步骤
Apr 01 Python
python中的字典详细介绍
Sep 18 Python
python中readline判断文件读取结束的方法
Nov 08 Python
wxPython之解决闪烁的问题
Jan 15 Python
在Pandas中给多层索引降级的方法
Nov 16 Python
Python中的枚举类型示例介绍
Jan 09 Python
如何修复使用 Python ORM 工具 SQLAlchemy 时的常见陷阱
Nov 19 Python
Python实现RGB与HSI颜色空间的互换方式
Nov 27 Python
pytorch之inception_v3的实现案例
Jan 06 Python
TensorFlow2.0:张量的合并与分割实例
Jan 19 Python
python字典的值可以修改吗
Jun 29 Python
Python matplotlib图例放在外侧保存时显示不完整问题解决
Jul 28 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 循环删除无限分类子节点的实现代码
2013/06/21 PHP
PHP四舍五入精确小数位及取整
2014/01/14 PHP
php实现简单的语法高亮函数实例分析
2015/04/27 PHP
PHP可变变量学习小结
2015/11/29 PHP
JavaScript XML操作 封装类
2009/07/01 Javascript
jquery插件制作 手风琴Panel效果实现
2012/08/17 Javascript
jquery实现智能感知连接外网搜索
2013/05/21 Javascript
Javascript实现带关闭按钮的网页漂浮广告代码
2014/01/12 Javascript
js中scrollTop()方法和scroll()方法用法示例
2016/10/03 Javascript
微信小程序 教程之引用
2016/10/18 Javascript
jquery实现点击页面回到顶部
2016/11/23 Javascript
javascript遍历json对象的key和任意js对象属性实例
2017/03/09 Javascript
react-native使用react-navigation进行页面跳转导航的示例
2017/09/07 Javascript
Node.js 使用流实现读写同步边读边写功能
2017/09/11 Javascript
vue ssr 实现方式(学习笔记)
2019/01/18 Javascript
Node 搭建一个静态资源服务器的实现
2019/05/20 Javascript
vue移动端使用appClound拉起支付宝支付的实现方法
2019/11/21 Javascript
python类继承用法实例分析
2014/10/10 Python
利用Python爬取可用的代理IP
2016/08/18 Python
Python实现中文数字转换为阿拉伯数字的方法示例
2017/05/26 Python
Python实现购物系统(示例讲解)
2017/09/13 Python
python对excel文档去重及求和的实例
2018/04/18 Python
创建pycharm的自定义python模板方法
2018/05/23 Python
python单例模式的多种实现方法
2019/07/26 Python
详解如何从TensorFlow的mnist数据集导出手写体数字图片
2019/08/05 Python
pandas 中对特征进行硬编码和onehot编码的实现
2019/12/20 Python
Python+unittest+DDT实现数据驱动测试
2020/11/30 Python
借助HTML5 Canvas来绘制三角形和矩形等多边形的方法
2016/03/14 HTML / CSS
日本PLST在线商店:日本时尚杂志刊载的人气服装
2016/12/10 全球购物
小学英语教学反思
2014/01/30 职场文书
办公室务虚会发言材料
2014/10/20 职场文书
幼儿教师辞职信
2015/02/27 职场文书
详解如何用Python实现感知器算法
2021/06/18 Python
SQL Server表分区降低运维和维护成本
2022/04/08 SQL Server
Golang实现可重入锁的示例代码
2022/05/25 Golang
MySQL外键约束(Foreign Key)案例详解
2022/06/28 MySQL