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简单实现Base64编码和解码的方法
Apr 29 Python
Python编程实现粒子群算法(PSO)详解
Nov 13 Python
详解appium+python 启动一个app步骤
Dec 20 Python
python3+PyQt5图形项的自定义和交互 python3实现page Designer应用程序
Jul 20 Python
利用pyinstaller将py文件打包为exe的方法
May 14 Python
用django设置session过期时间的方法解析
Aug 05 Python
python接口自动化如何封装获取常量的类
Dec 24 Python
python为QT程序添加图标的方法详解
Mar 09 Python
opencv python 图片读取与显示图片窗口未响应问题的解决
Apr 24 Python
哪些是python中web开发框架
Jun 17 Python
Python子进程subpocess原理及用法解析
Jul 16 Python
浅谈anaconda python 版本对应关系
Oct 07 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基础知识:类与对象(4) 范围解析操作符(::)
2006/12/13 PHP
PHP+JS+rsa数据加密传输实现代码
2011/03/23 PHP
thinkPHP框架实现图像裁剪、缩放、加水印的方法
2017/03/14 PHP
PHP小白必须要知道的php基础知识(超实用)
2017/10/10 PHP
jQuery内置的AJAX功能和JSON的使用实例
2014/07/27 Javascript
jQuery固定浮动侧边栏实现思路及代码
2014/09/28 Javascript
jQuery仿天猫实现超炫的加入购物车
2015/05/04 Javascript
详解JavaScript时间处理之几个月前或几个月后的指定日期
2016/12/21 Javascript
jQuery+C#实现参数RSA加密传输功能【附jsencrypt.js下载】
2017/06/26 jQuery
Node.JS 循环递归复制文件夹目录及其子文件夹下的所有文件
2017/09/18 Javascript
jQuery实现的粘性滚动导航栏效果实例【附源码下载】
2017/10/19 jQuery
Vue 组件(component)教程之实现精美的日历方法示例
2018/01/08 Javascript
js实现录音上传功能
2019/11/22 Javascript
基于Vue中的父子传值问题解决
2020/07/27 Javascript
Vue使用screenfull实现全屏效果
2020/09/17 Javascript
[41:54]2018DOTA2亚洲邀请赛 4.1 小组赛A组加赛 TNC vs Liquid
2018/04/03 DOTA
python 测试实现方法
2008/12/24 Python
Python中用函数作为返回值和实现闭包的教程
2015/04/27 Python
一个基于flask的web应用诞生(1)
2017/04/11 Python
python输入错误密码用户锁定实现方法
2017/11/27 Python
初探TensorFLow从文件读取图片的四种方式
2018/02/06 Python
Python实现查找数组中任意第k大的数字算法示例
2019/01/23 Python
python实现知乎高颜值图片爬取
2019/08/12 Python
使用Jupyter notebooks上传文件夹或大量数据到服务器
2020/04/14 Python
Python中random模块常用方法的使用教程
2020/10/04 Python
SteelSeries赛睿官网:游戏外设和配件的领先制造商(耳机、键盘、鼠标和鼠标垫)
2018/06/17 全球购物
美国快时尚彩妆品牌:Winky Lux(透明花瓣润唇膏)
2018/11/06 全球购物
《海底世界》教学反思
2014/04/16 职场文书
活动总结怎么写
2014/04/28 职场文书
2014年评职称工作总结
2014/11/20 职场文书
辛亥革命观后感
2015/06/02 职场文书
民政局未婚证明
2015/06/15 职场文书
银行服务理念口号
2015/12/25 职场文书
导游词之云南省玉龙雪山
2019/12/19 职场文书
html5表单的required属性使用
2021/07/07 HTML / CSS
python实现学员管理系统(面向对象版)
2022/06/05 Python