9.

Pivot jest w A[p], funkcja zwaraca granicę podziału

Part(A[1..n], p, r)

  x <- A[p] 
  i <- p-1 
  j <- r+1
  
   while(i<j) do
     repeat(j--) until A[j] <= x
     repeat(i++) until A[i] >= x
    
     if(i<j) swap(A[i], A[i])
     else return j