k-partitionning algorithm