我试图准确地理解这种方法的作用,它说它假设“不断交换最外面的错误定位对”。我把它放入一个程序并尝试了不同的数组,但结果对我来说毫无意义,这到底是做什么的
partition(A, p)
A: array of size n, p: integer s.t. 0 <= p < n
1. swap(A[0],A[p])
2. i <- 1, j <- n − 1
3. while i < j do
4. while A[i] <= A[0] and i < n do
5. i <- i + 1
6. while A[j] > A[0] and j > 0 do
7. j <- j − 1
8. if i < j then
9. swap(A[i], A[j])
10. swap(A[0], A[j])
11. return j