快速排序算法是一种分治排序算法.它将数组划分为两个部分,然后分别对两个部分进行排序.我们将看到,划分的准确位置取决于输入数组中元素的初始位置.关键在于划分过程,它重排数组,使得以下三个条件成立:(i)对于某个i,a[i]在最终位置上 (ii)a[left],…,a[i-1]中的元素都比a[i]小 (iii)a[i+1],…a[right]中的元素都比a[i]大.我们通过划分来完成排序,然后递归地应用该方法处理子数组.
我们使用一般策略来实现划分.首先,我们任选一个a[right]作为划分元素,这