Here is pseudo-Python-code for quicksort. It is based on the algorithm as it is presented in Introduction to Algorithms by Thomas H. Cormen, Charles E. Leiserson, and Ronald L. Rivest, Cambridge, Mass.: MIT Press, 1990. (The code may look a lot like real Python code, but it isn't.)
The algorithm is implemented by the Quicksort class. After each chunk of code, I list the name of the Quicksort method that implements it. The mapping is a little rough, but I think you'll see the connection.
def Quicksort(A, p, r):
"""Sort array A in place.
Initial call should be Quicksort(A, 0, len(A))
"""
if p < r:
q = Partition(A, p, r)
Quicksort(A, p, q)
Quicksort(A, q+1, r)
Implemented by Quicksort.done
def Partition(A, p, r):
x = A[p] # the pivot element
i = p - 1
j = r + 1
Implemented by Quicksort.start
while 1:
j = j - 1
while A[j] <= x:
j = j - 1
Implemented by Quicksort.slide_left
i = i + 1 while A[i] >= x: j = j - 1
Implemented by Quicksort.slide_right
if i < j: # elements being compared swap(A[i], A[j]) else: return j
Implemented by Quicksort.exchange_or_done