一个“笑话”
网上有个笑话,题目叫做“会快速排序的图书馆大妈”,内容如下:
我去省图书馆看见两个志愿者需要把还回来的一堆书按顺序入架。
管理员大妈教他们说:“你先在这堆书里拉出一本来,把比它号小的扔到一边,比它大的扔到另一边,然后剩下两堆继续这样整,这样排的快!”
虽然这段文字作为一个笑话颇不高明——笑话的提供者显然是把歧视(性别歧视 + 年龄歧视)当成了幽默,但从说明算法的角度,它还是有点可取指出的。
笑话中的嘲笑对象—— “图书馆管理员大妈”所提出的图书整理方法,就是我们今天要讲的排序算法:快速排序。
快速排序
算法原理
快速排序(Quick Sort,简称快排),又名划分交换排序(Partition-Exchange Sort),最早由东尼 · 霍尔(Charles Antony Richard Hoare,C.A.R.Hoare)在1960 年代初提出对起泡排序的一种改进。
这种排序算法说起来原理来非常简单,无外乎就是:
- 将待排