私はこのメソッドが何をするのかを正確に理解しようとしています.「最も外側の間違った位置にあるペアを交換し続ける」と仮定しています. これをプログラムに入れて別の配列を試しましたが、結果は意味がありません。これは正確には何をしますか
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