seaside Geschrieben 2. Dezember 2010 Geschrieben 2. Dezember 2010 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
lupo49 Geschrieben 2. Dezember 2010 Geschrieben 2. Dezember 2010 Hier wird das ganz gut erklärt: linux-related.de
seaside Geschrieben 4. Dezember 2010 Autor Geschrieben 4. Dezember 2010 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
Klotzkopp Geschrieben 4. Dezember 2010 Geschrieben 4. Dezember 2010 die zweite 2n mal. Das ist falsch. Bedenke, dass m bei jedem Durchlauf der ersten Schleife um n erhöht wird.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden