  Given a collection of red and blue mobile agents located on two grid rows, we
seek to move all the blue agents to the far left side and all the red agents to
the far right side, thus \textit{physically sorting} them according to color.
The agents all start on the bottom row. They move simultaneously at discrete
time steps and must not collide. Our goal is to design a centralized algorithm
that controls the agents so as to sort them in the least number of time steps.
  We derive an \textbf{exact} lower bound on the amount of time any algorithm
requires to sort a given initial configuration of agents. We find an instance
optimal algorithm that provably matches this lower bound, attaining the best
possible sorting time for any initial configuration. Surprisingly, we find that
whenever the leftmost agent is red and the rightmost agent is blue, a
straightforward decentralized and local sensing-based algorithm is at most $1$
time step slower than the centralized instance-optimal algorithm.
