Folgendes Programm habe ich aus einem doofen Pseudcode in Java transferiert:
Man soll den Speicher und Laufzeitbedarf angeben, wenn n die Problemgröße darstellt.
Meine Idee dazu:
Ich denke die Laufzeit ist hier O(n), da die Schleife n mal durchlaufen wird.
Wäre m die Problemgröße,dann wäre der Laufzeitbedarf (2*ldn),da die Schleife bei jedem 2. Durchlauf die eingegebenen Daten halbiert, sprich in der O-Notation O(log n).
Wie sieht es mit dem Speicherbedarf aus?Wie ermittel ich diesen?
Java:
import java.util.*;
public class Dummesprogramm {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Bitte n eingeben");
int n = scan.nextInt();
int k = 0;
int m =n;
while(m != 0){
if(m %2 == 0){
m = m/2;
} else{
k = k+1;
m = (m-1)/2;
}
System.out.println("m = "+ m);
System.out.println("n = "+ n);
System.out.println("k = "+ k);
System.out.println(" ");
}
}
}
Man soll den Speicher und Laufzeitbedarf angeben, wenn n die Problemgröße darstellt.
Meine Idee dazu:
Ich denke die Laufzeit ist hier O(n), da die Schleife n mal durchlaufen wird.
Wäre m die Problemgröße,dann wäre der Laufzeitbedarf (2*ldn),da die Schleife bei jedem 2. Durchlauf die eingegebenen Daten halbiert, sprich in der O-Notation O(log n).
Wie sieht es mit dem Speicherbedarf aus?Wie ermittel ich diesen?