Partitioning algorithms.
