Core idea
The algorithm divides the array into a sorted prefix and an unsorted suffix.
On every pass, it scans the unsorted part, finds the minimum element, and swaps it into the next position of the sorted prefix.
It is easy to reason about and performs a predictable number of comparisons, which makes it a useful teaching algorithm.