Python|快速排序
时间:2022-07-22
本文章向大家介绍Python|快速排序,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1 快速排序的方法
取一个元素s,将比s小的元素放在s的左边,将比s大的元素放在s的右边;就是将数组划分成两部分,左小右大,然后将分好的两个数组递归继续执行上述操作,直到排序完毕为止。
此处用两个指针:left 与 right来处理,当s归位时划分完毕;例如数组;
排序前
以s = 5 进行划分为左小右大,直到s归位,返回该处的left
递归执行上述步骤;在对划分的左右进行排序,直到排序完毕。
左边:left=0,right=返回的left-1 右边:left=返回的left,right=数组长度
2 代码演示
# 快速排序
def passt(li, left, right):
s = li[left] # 该处 我们始终以第一个元素为s,即所取元素
while left < right: # 然后进行循环满足:左小右大原则将数组的元素归位
while li[right] >= s and left < right:
right -= 1
li[left] = li[right]
while li[left] <= s and left < right:
left += 1
li[right] = li[left]
li[left] = s
return left # 归位后返回其下标
def quick_sorted(li, left, right):
if left < right:
mid = passt(li, left, right)
quick_sorted(li, left, mid-1) # 递归将其左部分进行归位处理
quick_sorted(li, mid+1, right) # 递归将其右部分进行归位处理
if __name__ == '__main__':
li = [5,4,6,7,3,8,2,1,9]
quick_sorted(li, 0, len(li)-1)
print(li)
3 总结
本篇博客主要讲述了快排的排序方法,及如何用python代码来实现。快速排序相对于其他排序方法而言,主要突出了一个“快”字,可以更快的将数组的元素进行排序。
END
主 编 | 王文星
责 编 | W Z Y
- 总结---3
- Mac系统实现git命令自动补全
- [大数据之Yarn]——资源调度浅学
- Mac系统的终端显示git当前分支
- 不掌握这几个人工智能编程语言怎么能说懂AI
- Gulp实现css、js、图片的压缩以及css、js文件的MD5命名
- 大数据之Yarn——Capacity调度器概念以及配置
- 移动端web开发,click touch tap区别
- 大数据学习之路(持续更新中...)
- 如何养成良好的c++编程习惯(1)——内存管理
- 使用jOrgChart插件实现组织架构图的展示
- Spark源码分析 之 Driver和Excutor是怎么跑起来的?(2.2.0版本)
- webpack入门——webpack的安装与使用
- Portal-Basic Java Web应用开发框架V3.0正式发布(源码、实例及文档)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 浙大版《C语言程序设计(第3版)》题目集 习题7-3 判断上三角矩阵
- 浙大版《C语言程序设计(第3版)》题目集 习题7-4 求矩阵各行元素之和
- 浙大版《C语言程序设计(第3版)》题目集 习题7-6 统计大写辅音字母
- 浙大版《C语言程序设计(第3版)》题目集 习题7-7 字符串替换
- 浙大版《C语言程序设计(第3版)》题目集 习题8-10 输出学生成绩
- 浙大版《C语言程序设计(第3版)》题目集 习题9-1 时间换算
- 浙大版《C语言程序设计(第3版)》题目集 习题9-3 平面向量加法
- 浙大版《C语言程序设计(第3版)》题目集 习题9-4 查找书籍
- 浙大版《C语言程序设计(第3版)》题目集 习题9-5 通讯录排序
- 浙大版《C语言程序设计(第3版)》题目集 习题7-5 找鞍点
- 浙大版《C语言程序设计(第3版)》题目集 练习5-1 求m到n之和
- 手把手教你用Python爬取快递100查询你的物流信息
- 浙大版《C语言程序设计(第3版)》题目集 练习5-2 找两个数中最大者
- 浙大版《C语言程序设计(第3版)》题目集 练习5-3 数字金字塔
- 浙大版《C语言程序设计(第3版)》题目集 习题5-1 符号函数