2008-10-07 4 views

Antwort

8

Dictionary of Algorithms and Data Structures ist eine ziemlich umfassende Liste und enthält Komplexität (Big-O) in den Beschreibungen der Algorithmen. Wenn Sie mehr Informationen benötigen, wird es in einer der verknüpften Referenzen sein, und es gibt immer Wikipedia als Fallback.

+0

ich heruntergeladen alle Seiten und machte eine Liste jeder Seite aus, die großen o bietet: https://pastebin.com/X3c7i4aF – BlackCap

2

Versuchen Sie "Introduction to Algorithms" von Cormen, Leisersen und Rivest. Wenn es nicht drin ist, ist es wahrscheinlich nicht wissenswert.

6

Die Cormen book ist mehr über Lehre, wie man beweist, was Big-O für einen bestimmten Algorithmus wäre, anstatt das Auswendiglernen des Algorithmus für seine Big-O-Leistung. Ersteres ist viel wertvoller als das Letztere und erfordert eine Investition von Ihrer Seite.

2

In C++ sind die STL-Standards durch die Big-O-Eigenschaften der Algorithmen sowie die Platzanforderungen definiert. Auf diese Weise können Sie zwischen konkurrierenden Implementierungen von STL wechseln und wissen, dass Ihr Programm die gleichen Laufzeiteigenschaften hat. Besonders gute STL-Implementierungen könnten sogar Sonderfalllisten bestimmter Typen besser als die Standardanforderungen sein.

Es machte es einfach, den richtigen Iterator oder Listentyp für ein bestimmtes Problem auszuwählen, weil Sie leicht zwischen Speicherplatzverbrauch und Geschwindigkeit abwägen konnten.

Natürlich ist Big-O nur eine Hilfslinie, da alle Konstanten entfernt sind. Wenn ein Algorithmus in k * O (n) läuft, würde er als O (n) klassifiziert werden, aber wenn k ausreichend hoch ist, könnte er für einige Werte von n und m schlechter als O (n^2) sein.

Verwandte Themen