Chooses a pivot, partitions smaller and larger values around it, then sorts the two parts recursively.
Numbered boxes show both the value and its current position number. Movement is animated from one slot to another. For divide-and-conquer algorithms, the page also shows how the list splits into parts and then comes back together.
This area becomes especially useful for Merge Sort, Quick Sort, and TimSort-style run/merge explanation. It visually shows parts, subparts, pivot-based partitions, or natural runs depending on the algorithm.
Tip: try arrays with duplicates and partially sorted values. Watching the movements helps understand why some algorithms preserve order and some do not.
def quick_sort(arr):
if len(arr) <= 1:
return arr[:]
pivot = arr[len(arr) // 2]
left = [x for x in arr if x < pivot]
middle = [x for x in arr if x == pivot]
right = [x for x in arr if x > pivot]
return quick_sort(left) + middle + quick_sort(right)The editor URL below has been updated to remove lesson-viewer. The code is packed into the hash so the editor can load a ready example directly.