网上很多文章,只是说了快排的具体实现。原理未能说得明白,还有一些值得思考的问题。 算法核心: 主要是找到一种划分算法,然后递归进行分治,不再过多描述。 那我们思考如下两行能够交换么? 试想这种情况: 结论: 关键是: 优先找到比key小的,也就是优先从右边开始找。 还是想优先找到比key大的,也就是优先从左边开始找。 显然,我们需要从右边开始找。所以不能交换上述遍历的顺序。