Veröffentlicht 2. Dezember 201014 j Hallo, kann mir vielleicht jemand anhand eines Beispiels erklären wie ich den Aufwand eines Algorithmus berechnen kann? Ich finde leider im Netz keine guten Beispiele loop1(n) { m = 1; i = 0; while (m < n) { while (i < m) { i = i + 1; } m = m + i; } } Vielen Dank für jede Hilfe
4. Dezember 201014 j Vielen Dank, die Seite war sehr hilfreich =) Ich habe aber noch eine Frage zu folgenden Algorithmen: loop5(n) { m = n; i = 4 * n; while (i > 4) { m = m + n; i = i - 4; } while (m > 0) { m = m - 2; } } die erste Schleife wird nach meinen Überlegungen n- mal durchlaufen und die zweite 2n mal. Die richtige Lösung ist jedoch O(n^2). Werden die zwei Aufwandsklassen auch multipliziert wenn sie nicht verschachtelt sind? loop2(n) { if (n > 0) { loop2(n - 500); } else if (n < 0) { loop2(n + 2); } } Die Schleife terminiert nur für gerade Zahlen. Ich habe als Aufwandsklasse O(n) raus, kommt das hin? Vielen Dank
4. Dezember 201014 j die zweite 2n mal. Das ist falsch. Bedenke, dass m bei jedem Durchlauf der ersten Schleife um n erhöht wird.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.