Hallo,
ich hab folgendes Programm gegeben:
Wobei A eigentlich ein Array mit n Einträgen sein soll, wobei es überall auf 0 gesetzt ist. Jetzt soll ich die Komplexität dieses Programms beweisen und es ist in O(2^n). Nur bevor ich überhaupt es beweisen soll, hab ich noch Verständnisprobleme mit dem Code. Die do Bedingung wird genau einmal ausgeführt und A(1) wird auf 1 gesetzt und dann beginnt die while Schleife, wo aber i irgendwie ja nie verändert wird. Also terminiert doch das Programm eigentlich nicht.
Könnte mir deshalb einer von euch mir vielleicht erklären, wo mein Denkfehler ist?
Vielen Dank im Voraus
ich hab folgendes Programm gegeben:
Code:
public static void main(String[] args) {
int [] A = {0,0,0,0,0};
int n = A.length;
int i;
do {
i=1;
while (A[i]==1) {
A[i]=0;
i=i+1;
}
A[i]=1;
} while (i<n);
}
Wobei A eigentlich ein Array mit n Einträgen sein soll, wobei es überall auf 0 gesetzt ist. Jetzt soll ich die Komplexität dieses Programms beweisen und es ist in O(2^n). Nur bevor ich überhaupt es beweisen soll, hab ich noch Verständnisprobleme mit dem Code. Die do Bedingung wird genau einmal ausgeführt und A(1) wird auf 1 gesetzt und dann beginnt die while Schleife, wo aber i irgendwie ja nie verändert wird. Also terminiert doch das Programm eigentlich nicht.
Könnte mir deshalb einer von euch mir vielleicht erklären, wo mein Denkfehler ist?
Vielen Dank im Voraus