Mental Model
We use three pointers to separate the array into three parts: zeros, ones, and twos. We swap elements to put them in the right part without extra space.
Analogy: Imagine sorting red, white, and blue balls into three boxes by moving balls between boxes using just your hands, without extra containers.
Index: 0 1 2 3 4 5 Array: [2] -> [0] -> [2] -> [1] -> [1] -> [0] Pointers: low ↑ mid ↑ high ↑
