Variable Sized Partition Algorithms