QUICKSORT(A, p, r) if p < r q = PARTITION(A, p, r) QUICKSORT(A, p, q-1) QUICKSORT(A, q+1, r)
初始调用QUICKSORT(A, 1, A.length).
该算法的关键在于PARTITION过程
1 2 3 4 5 6 7 8 9
PARTITION(A, p, r) x = A[r] //当前数组最后一个元素,选为枢纽元 i = p - 1 //头节点位置(第一个元素之前的位置) for j = p to r-1 if A[j] <= x i = i + 1 exchange A[i] with A[j] //如果从前向后遍历发现了比枢纽元小的元素,就换到前面,由于j保证遍历到除了枢纽元以外整个列表,因此一定可以保证所有比枢纽元小的元素都换到i之前的位置 exchange A[i+1] with A[r] //最后再把枢纽元安置到中间 return i + 1