29 int capacity = (int) p1->getSize();
32 bool* takenPositions =
new bool[capacity];
39 int* unusedElements =
new int[capacity];
42 for(
int i = 0; i < capacity; i++) {
43 takenPositions[i] =
false;
49 for(
int ind = 0; ind < capacity; ind++) {
50 if(p1->variables[ind]==p2->variables[ind]) {
51 ch->variables[ind] = p1->variables[ind];
52 takenPositions[ind] =
true;
54 unusedElements[unusedNo] = p1->variables[ind];
60 int candidatePosition = 0;
65 int index = state_->getRandomizer()->getRandomInteger(unusedNo);
66 while(takenPositions[candidatePosition]) {
69 ch->variables[candidatePosition] = unusedElements[index];
71 unusedElements[index] = unusedElements[unusedNo];
76 while(takenPositions[candidatePosition]) {
79 ch->variables[candidatePosition] = unusedElements[0];
83 delete[] unusedElements;
84 delete[] takenPositions;