implemented HalfUniformCrossover operator