# FAQ: Quicksort: Python - Quicksort Review

This community-built FAQ covers the “Quicksort Review” exercise from the lesson “Quicksort: Python”.

Paths and Courses
This exercise can be found in the following Codecademy content:

## FAQs on the exercise Quicksort Review

There are currently no frequently asked questions associated with this exercise – that’s where you come in! You can contribute to this section by offering your own questions, answers, or clarifications on this exercise. Ask or answer a question by clicking reply () below.

If you’ve had an “aha” moment about the concepts, formatting, syntax, or anything else with this exercise, consider sharing those insights! Teaching others and answering their questions is one of the best ways to learn and stay sharp.

## Join the Discussion. Help a fellow learner on their journey.

Agree with a comment or answer? Like () to up-vote the contribution!

Found a bug? Report it!

Have a question about your account or billing? Reach out to our customer support team!

None of the above? Find out where to ask other questions here!

I think this code may have a bug. The print statement says it’s swapping the number with the pivot element, but it’s really swapping with the pointer? Am I right?

``````from random import randrange, shuffle

def quicksort(list, start, end):
# this portion of list has been sorted
if start >= end:
return
print("Running quicksort on {0}".format(list[start: end + 1]))
# select random element to be pivot
pivot_idx = randrange(start, end + 1)
pivot_element = list[pivot_idx]
print("Selected pivot {0}".format(pivot_element))
# swap random element with last element in sub-lists
list[end], list[pivot_idx] = list[pivot_idx], list[end]

# tracks all elements which should be to left (lesser than) pivot
less_than_pointer = start

for i in range(start, end):
# we found an element out of place
if list[i] < pivot_element:
# swap element to the right-most portion of lesser elements
print("Swapping {0} with {1}".format(list[i], pivot_element))  # <<<<<-------**HERE**
list[i], list[less_than_pointer] = list[less_than_pointer], list[i]
# tally that we have one more lesser element
less_than_pointer += 1
# move pivot element to the right-most portion of lesser elements
list[end], list[less_than_pointer] = list[less_than_pointer], list[end]
print("{0} successfully partitioned".format(list[start: end + 1]))
# recursively sort left and right sub-lists
quicksort(list, start, less_than_pointer - 1)
quicksort(list, less_than_pointer + 1, end)

list = [5,3,1,7,4,6,2,8]
shuffle(list)
print("PRE SORT: ", list)
print(quicksort(list, 0, len(list) -1))
print("POST SORT: ", list)

``````

Yeah, I agree. I think the comment is not consistent with its code.
If the comment says

``````# swap element to the right-most portion of lesser elements
``````

the print part of code should be:

``````print("Swapping {0} with {1}".format(list[i], list[less_than_pointer]))
``````

Yep I agree “legendsmith” seems to have it correct ^.