Mental Model
We divide an array into three parts by moving elements less than, equal to, and greater than a pivot value into separate sections in one pass.
Analogy: Imagine sorting colored balls into three bins: red, white, and blue. You pick one ball at a time and put it in the correct bin without mixing them up.
Array: [ 2, 0, 2, 1, 1, 0 ] Indexes: 0 1 2 3 4 5 Pointers: low ↑ mid ↑ high ↑