QUICKSORT(A,p,r)如果p < r q = PARTITION(A,p,r) QUICKSORT(A,p,q-1) QUICKSORT(A,p,q-1) QUICKSORT(A,p,r) PARTITION(A,p,r) x = A[r] i = p-1 for j = p到r-1如果A[j] <= x i = i+1交换A[i]与A[j]交换A[i+1]与A[r]返回i+1
以下是关于快速排序行为的一些关键观察:
这是一个估计比较总数的概率论证。
引入随机变量
对于这个变量,表示总比较次数的随机变量是
我们想要计算X的期望值,这将产生快速排序中比较的总次数。
E[Xi,j]就是Xi相对于xj的概率。这个概率是多少?最简单的方法是计算xi不与xj比较的概率:如果xi和xj之间的任何一个数被选为首先的主值,这种情况就会发生。假设每个数字被先选的概率相等,这个概率很简单
因此
和