一、快速排序

设定一个基准值pivot
将数组重新排列,所有比pivot小的放在其前面,比pivot大的放后面,这操作称为分区操作
对两边的数组重复前面两个步骤

二、画图演示

三、代码块

采用递归思想

def quickSort(nums):n=len(nums)if n<=1:return numspivot=nums[0]left=[]right=[]for i in range(1,n):if nums[i]>pivot:right.append(nums[i])else:left.append(nums[i])print(left,pivot,right)print('-----------------------------')return quickSort(left)+[pivot]+quickSort(right)test = [44, 12, 59, 36, 62, 43, 94, 7, 35, 52, 85]
test=quickSort(test)
print(test)

执行结果:

【python】数据结构与算法之快速排序(重要)相关推荐

  1. 在路上---学习篇(一)Python 数据结构和算法 (3) --快速排序

    独白: 前几天学的基本简单排序算法,相对来说接受起来还是可以的,今天学的快速排序,视频看了2遍加上自己的思考,才真正的研究明白.自己的编程思维在逐渐的形成,日后还需勤加练习.心得:越高级的算法,越是让 ...

  2. python 数据结构与算法 day04 快速排序

    1. 快速排序 思路: 快速排序是对原始的序列先找第一个元素应该放在原有序列的哪一个位置,需要有两个游标同时移动,首先从high开始移动,如果high所指的元素比第一个元素大,就继续移动high游标, ...

  3. Python天天美味(32) - python数据结构与算法之堆排序

    1. 选择排序 选择排序原理是先选出最小的数,与第一个数交换,然后从第二个数开始再选择最小的数与第二个数交换,-- def selection_sort(data):     for i in ran ...

  4. Python 数据结构与算法——快排

    Python 数据结构与算法--选取算法(TopK) 如果说快速选取法所代表的是剪枝式的遍历操作--在递归树中找出一条通往第 k<script type="math/tex" ...

  5. python数据结构和算法 时间复杂度分析 乱序单词检测 线性数据结构 栈stack 字符匹配 表达式求值 queue队列 链表 递归 动态规划 排序和搜索 树 图

    python数据结构和算法 参考 本文github 计算机科学是解决问题的研究.计算机科学使用抽象作为表示过程和数据的工具.抽象的数据类型允许程序员通过隐藏数据的细节来管理问题领域的复杂性.Pytho ...

  6. 数据结构与算法之快速排序

    数据结构与算法之快速排序 目录 快速排序介绍 代码实现 1. 快速排序介绍 快速排序(Quicksort)是对冒泡排序的一种改进.基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的 ...

  7. python数据结构与算法13_python 数据结构与算法 (13)

    python 数据结构与算法 (13) 选择排序 (Selection sort) 是? 种简单直观的排序算法. 它的? 作原理如 下.? 先在未排序序列中找到最?(?)元素, 存放到排序序列的起始位 ...

  8. python leetcode_leetcode 介绍和 python 数据结构与算法学习资料

    for (刚入门的编程)的高中 or 大学生 leetcode 介绍 leetcode 可以说是 cs 最核心的一门"课程"了,虽然不是大学开设的,但基本上每一个现代的高水平的程序 ...

  9. Python数据结构与算法(二)栈和队列

    本系列总结了python常用的数据结构和算法,以及一些编程实现. 参考书籍:<数据结构与算法 Python语言实现> [美]Michael T.Goodrich, Roberto Tama ...

  10. Python数据结构与算法(一)列表和元组

    本系列总结了python常用的数据结构和算法,以及一些编程实现. 参考书籍:<数据结构与算法 Python语言实现> [美]Michael T.Goodrich, Roberto Tama ...

最新文章

  1. oracle user_scheduler_jobs,Oracle 定时任务dbms_scheduler
  2. c#创建、保存excel正常执行要点补疑
  3. 配置文件application.properties剥离
  4. HTML5的新增功能
  5. android call require api level
  6. ImportError: libicui18n.so.56 and/or libicui18n.so.58 when importing cv2
  7. 股票自动交易使用协议
  8. Mars 算法实践——人脸识别 1
  9. CarbonData:大数据融合数仓新一代引擎
  10. 外星人电脑为什么那么贵_为什么隐形矫正那么贵
  11. 强烈的公帑意识让香港人盯紧官员的公款支出
  12. jQuery 文档操作方法 (四)
  13. ubuntu 安装配置mysql
  14. lbj学习日记02 循环结构(for while)
  15. BBU与RRU、RRH
  16. matlab 定义自然数变量,matlab数值数据和变量名
  17. Android加速度传感器测位移,一种校核加速度传感器测位移的方法与流程
  18. 如何查看系统开关机时间
  19. Navicat绘制数据库物理模型
  20. 程序员初学者如何自学编程

热门文章

  1. centos7如何安装samba-client_如何在基本图形模式下最小化全新安装CentOS 7?
  2. harmonyos 2.0怎么升级,HarmonyOS 2.0正式发布 分布式能力获得全面升级
  3. 无人值守数据中心这一次真的能“大势所趋”吗?
  4. 高低压验电笔应用口诀及使用方法
  5. 机房漏水后,漏水报警器是如何检测应急处理的?
  6. ML之LassoRRidgeR:基于datasets糖尿病数据集利用LassoR和RidgeR算法(alpha调参)进行(9→1)回归预测
  7. DL之GCN:GCN算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
  8. DayDayUp:寒门女孩考入北大→换角度看待表达《感谢贫穷》—关于吃苦与穷~~~Python之wordcloud词云图可视化
  9. 《疯狂Java讲义》7
  10. 【UOJ34】—多项式乘法(FFT)