一个“笑话”

网上有个笑话,题目叫做“会快速排序的图书馆大妈”,内容如下:

我去省图书馆看见两个志愿者需要把还回来的一堆书按顺序入架。

管理员大妈教他们说:“你先在这堆书里拉出一本来,把比它号小的扔到一边,比它大的扔到另一边,然后剩下两堆继续这样整,这样排的快!”

虽然这段文字作为一个笑话颇不高明——笑话的提供者显然是把歧视(性别歧视 + 年龄歧视)当成了幽默,但从说明算法的角度,它还是有点可取指出的。

笑话中的嘲笑对象—— “图书馆管理员大妈”所提出的图书整理方法,就是我们今天要讲的排序算法:快速排序。

快速排序

算法原理

快速排序(Quick Sort,简称快排),又名划分交换排序(Partition-Exchange Sort),最早由东尼 · 霍尔(Charles Antony Richard Hoare,C.A.R.Hoare)在1960 年代初提出对起泡排序的一种改进。

这种排序算法说起来原理来非常简单,无外乎就是:

  • 将待排

5-7课:与二分查找共组双子星座:快速排序相关推荐

  1. [Leedcode][JAVA][第209题][长度最小的子数组][滑动窗口][前缀和][二分查找][双指针]

    [问题描述][中等] 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组,并返回其长度.如果不存在符合条件的连续子数组,返回 0.示例: 输入: ...

  2. [Leedcode][JAVA][第4题][寻找两个正序数组中的中位数][二分查找][双指针]

    [问题描述][困难] 给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2.请你找出这两个正序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n)).你可以假设 ...

  3. LeetCode 2302. 统计得分小于 K 的子数组数目(前缀和+二分查找)

    文章目录 1. 题目 2. 解题 1. 题目 一个数组的 分数 定义为数组之和 乘以 数组的长度. 比方说,[1, 2, 3, 4, 5] 的分数为 (1 + 2 + 3 + 4 + 5) * 5 = ...

  4. 209 长度最小的子数组(前缀和+二分查找、滑动窗口)

    1. 问题描述: 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组,并返回其长度.如果不存在符合条件的子数组,返回 0. 示例: 输入:s = ...

  5. LeetCode-数组-704. 二分查找

    描述 704. 二分查找 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1. 示 ...

  6. 程序员的算法课(4)-二分查找

    一个90%的程序员写不对的程序,一个面试高频出现的面试题,一个开发中用之甚广的算法,一个最能体现程序员素质的代码,它就是二分查找. 一.二分查找的定义 [百度百科]二分查找也称折半查找(Binary ...

  7. 日撸力扣三道题---Day3---数组算法+二分查找

    今天主要是对前两天的引用, 一道题是在一个数组中将不是0的数提前,0放到数组末尾,尽量在原数组上进行操作 解题思路是直接遍历将所有的非零数移动,改下标 代码实现 var moveZeroes = fu ...

  8. 【完美解析】蓝桥杯 省赛 杨辉三角形 python组 找规律+二分查找+组合数

    题目 看到最后如果还不懂你来打我~ 分析 我们看到杨辉三角形很容易想到一个数的值等于它肩膀两个数的和.为此,可以不断通过前一行的数求出后一行的数,重复上面操作,直到找到目标为止.但是看了用例规模后发现 ...

  9. NEFU 大一寒假训练六(二分查找)题目预测

    说明 预测原理还是基于这篇文章:NEFU OJ 比赛试题预测 (Python) 为防止格式更正导致文章进入待审核状态,所以今天晚上就不修正格式了 如果有格式问题请自行理解,问题产生主要与Markdow ...

最新文章

  1. 均匀分布取某一点概率_概率和概率分布
  2. Lintcode 993 解题思路和c++代码
  3. 前15天mysql_Mysql查询今天/昨天/15天前/上个月/去年/上周每日等函数
  4. 常用的分隔符有哪三种_加固博士:常用防水材料大比拼,究竟花落谁家?
  5. JDK 5、6、7、8、9、10、11、12、13、14 新特性汇总
  6. 小米12系列首发!高通骁龙898有望11月30日亮相
  7. linux复习题之阶段性考试题目
  8. 移动Web实战篇-使用CSS Sprites减少你的页面http请求
  9. Android studio3.5读取项目资源文件的图片
  10. Serial垃圾回收器总结
  11. 下一代企业IT架构:云原生架构
  12. 计算机教师个人能力不足,教师个人信息技术能力分析优势和不足.docx
  13. 编写MTK6737平台的GPIO驱动例程(六)
  14. 三维点云处理-1.2主成分分析PCA
  15. 国空三区三线思考之:Arcgis自上而下从左到右进行编号
  16. python之pycharm添加环境变量
  17. 有什么方法判断网站后台是用什么语言写的
  18. SWIFT之殇——针对越南先锋银行的黑客攻击技术初探
  19. 深度解析FPS游戏外挂+解决方案
  20. java计算机毕业设计小学教师课程管理系统源程序+mysql+系统+lw文档+远程调试

热门文章

  1. Skew数(二进制数)-C语言
  2. 从老板的角度看问题(二)——为IT企业提供精益改善PDCA -Kaizen PDCA
  3. 敏捷实施时的五个不当做法
  4. Location.reload() 刷新
  5. pixijs微信小游戏排行榜开放域开发
  6. 微软CRM使用(视频教学
  7. 三分搜索 (算法设计与分析课后习题)
  8. 服务器回收信息,旧服务器回收
  9. 网马的反挂马检测及精确投放(免杀)
  10. 商业公司主导下的非营利开源软件基金会之 ———— Eclipse 的成长和发展(上)...