public class Komplexitaet { static int zaehler = 0; public static void main(String[] args) { int n = Eingabe.readInt("Bitte n eingeben: "); // Bestimmung der Komplexitätsklasse: // "Wie hängt die Anzahl von Instruktionen, die ausgeführt werden, // vom Eingabewert ab?" // n Durchläufe der Schleife, also: O(n) for(int i=1; i<=n; i++) { zaehler++; System.out.println(i); } // n² Durchläufe, also: O(n²) for(int i=1; i<=n; i++) { for(int j=1; i<=n; j++) { zaehler++; System.out.println(i+j); } } // n³ Durchläufe, also: O(n³) (kubisch, z.B. 3D-Koordinaten) for(int i=1; i<=n; i++) { for(int j=1; i<=n; j++) { for(int k=1; k<=n; k++) { zaehler++; System.out.println(i+j+k); } } } // Anderer Algorithmus: Suche eine Zahl zwischen 1...n // diese darf aber nur durch Ja/Nein-Fragen // gefunden werden. // z.B. "ist die Zahl 42?" -> Ja/Nein // oder "liegt die Zahl zwischen 1 und 10?" -> Ja/Nein? // Beispiel bei 1 <= Zahl <= 100: Mit 7 Versuchen // "Ist die Zahl kleiner als (Hälfte der verbleibenden Werte)" // ist man dabei. -> O(log n) } } } }