OrderedCrossover implementation