概述
快速排序(Quick Sort)是一种高效的排序算法,由英国计算机科学家C. A. R. Hoare在1962年提出。它的基本思想是分治法(分而治之)
思路
之前学快排的时候看过很多大佬的思路,但是都是在讲快排是怎么实现的,对于感觉对于很多刚接触这个排序算法的朋友来说有点不友好。直到有一天,学到了看到一个大佬在讲分治的时候,举了一个例子,感觉非常好,很适合对于初学快排的朋友更好理解它的思路:
例子:现在你手上有100份试卷,我们需要把他们按照分数从低到高进行排序,我们该如何排序?
如果没有学过算法的朋友可能是这样排的:我们先拿出第一张试卷,看然后把它放在桌子上,接着拿第二张试卷,看当前这试卷的分值比之前的试卷的分值大还是小,如果比它分值大就把它放在第一张试卷下面,如果比它分值小,我们就把它放在第一张试卷上面,以此类推,我们就可以按照这样的方式把它全部排好。
这是传统的排序方式,我们一般称它为插入排序,对于一个班只有几十个人的情况,完全够用了。但是如果我们需要排序的试卷很多呢?有500张,1000张?显然这样的方式就显得有点力不从心了,这时我们就可以用到今天我们所学的快排了。
我们可以这样做:
- 我们有100份试卷,我们按照第一张试卷(最上面的一张)上面的分数把试卷分成两堆,分法为:把分数小于等于第一张试卷的试卷放到左边,把分数大于