Ik ben bezig met een algoritme die moet bepalen hoeveel waarden uit een willekeurige array (alle gehele gatallen) er groter zijn dan al hun voorgangers. Volgens mij ben ik op de goede weg, maar de uitkomst is niet goed. Als ik bijvoorbeeld een array van 10 waardes heb, dan geeft hij nog wel eens een uitkomst als 12. Dat kan natuurlijk niet. Mijn vraag is wat gaat hier fout?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| public void biggerThanPre() {
int[] arrayFinal = getArray(); //De array waar de berekening op uitgevoerd wordt
int biggerNumbers = 0; //Waarde +1 als alle voorgangers kleiner zijn
boolean bigger;
for (int i = 1; i < arrayFinal.length; i++) {
bigger = true;
for (int j = 0; j < arrayFinal.length; j++) {
if (arrayFinal[i] <= arrayFinal[j]) {
bigger = false;
break;
}
if (bigger) {
biggerNumbers++;
}
}
}
System.out.println("Number of values bigger than predecessors: " + biggerNumbers);
} |