好吧,你可以在网上搜到一大堆的快速排序的代码,包括一些相似的博客(说明+代码实现),所以我想写一篇关于自己所理解的快速排序。
本文假设你明白什么是快速排序= =!
分区
快速排序会以一个数列的某个元素为基准,把一个数列分成两部分,小于这个基准的为一部分,大于等于的作为一部分,然后分别为这两部分递归求解,这是书上,和教程上的说法,这样的描述很容易让人误解,我觉得算上这个基准应该是三部分,基准并没有参加进一步递归,如果你不看别人的代码,第一次通过定义试图写一个快速排序,很容易把基准加入到第二个部分,导致无穷递归,所以我常对快速排序这样描述,快速排序每次分区后,都会确定一个基准的位置(这个位置是它应有的)