快速排序 大家最好都要掌握快排,很多时候要手写快速排序的。 基本思想 通过一趟排序将待排序的数据分割成独立的两部分,其中一部分的所有数据比另一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,最终使整个序列有序。 算法步骤 选取基准值x 划分,根据选取的x将数组划分成小于等于x的部分和大于等于x的部分 递归求解小于x和大于x的部分 容易遇到的问题 基准值的选取:部分题目选取第一个数作为基准值会导致超时,可以通过选取中间的数作为基准值,或采用三数取中法。 i j的取值: i = l - 1, j = r + 1,为什么不是i = l, j = r...