Pick an algorithm, then press Sort. Every comparison and swap is a step with an explanation.
New array makes fresh data: random, nearly sorted, reversed or with few unique values. Or type your own values (1–99).
Switching algorithm keeps the same unsorted array, so you can compare them on identical data — watch the comparison and swap counters.
Merge sort has two views. Magic first (default) splits the array, lets "magic" sort both halves, shows the merge in detail, and then reveals that the magic is the recursive mergeSort() call. Full trace follows every call down to single elements.
Heap sort also draws the array as a binary tree.
Try this
Insertion and bubble sort on nearly sorted data: almost linear.
Quick sort on reversed data: the last-item pivot gives its O(n²) worst case.
Few unique values show stability: equal values keep their order in merge and insertion sort.