Visualize classic sorting algorithms and understand their time and space complexity.
A divide-and-conquer algorithm that splits, sorts, and merges subarrays.
Partitions an array around a pivot and recursively sorts each partition.
Repeatedly swaps adjacent elements that are out of order.
Builds a sorted array one element at a time by inserting each into its correct position.
Distributes elements into buckets, sorts each bucket, then concatenates the results.