public int getNumberDisjoint(Organism organism2) {
        int D = 0;
        int maxNumberShortGenome, counterInnovNumber, i = 0, j = 0;
        if (organism2.getLastGeneInovNumber() > this.getLastGeneInovNumber()) { //this - short genome
            maxNumberShortGenome = this.getGenome().lastGeneInovNumber();
        } else { //organism2 - short genome
            maxNumberShortGenome = organism2.getGenome().lastGeneInovNumber();
        }
        if (organism2.getGenome().getGenes().get(0).getInnovation_num() > this.getGenome().getGenes().get(0).getInnovation_num()) {
            counterInnovNumber = this.getGenome().getGenes().get(0).getInnovation_num();
        } else {
            counterInnovNumber = organism2.getGenome().getGenes().get(0).getInnovation_num();
        }

        while (counterInnovNumber < maxNumberShortGenome) {
            counterInnovNumber = organism2.getGenome().getGenes().get(i).getInnovation_num();
            if (organism2.getGenome().getGenes().get(i).getInnovation_num() > this.getGenome().getGenes().get(j).getInnovation_num()) {
                D++;
                counterInnovNumber = this.getGenome().getGenes().get(j).getInnovation_num();
                i--;
            } else if (organism2.getGenome().getGenes().get(i).getInnovation_num() < this.getGenome().getGenes().get(j).getInnovation_num()) {
                D++;
                counterInnovNumber = organism2.getGenome().getGenes().get(i).getInnovation_num();
                j--;
            }
            i++;
            j++;
        }
        return (D);
    }