Big O, wie kann Sie berechnen/approximieren?

Meisten Menschen mit einem Grad in CS wird sicherlich wissen, was Big O steht für.
Es hilft uns, zu Messen, wie (in)effizient ein Algorithmus wirklich ist und wenn Sie wissen, in in welche Kategorie das problem, das Sie versuchen zu lösen, liegt in können Sie herausfinden, ob es noch möglich ist, squeeze-out, die wenig extra-Leistung.1

Aber ich bin neugierig, wie Sie berechnen oder annähernd der Komplexität der algorithmen?

1 aber wie Sie sagen, übertreiben Sie es nicht, vorzeitige Optimierung ist die Wurzel allen übels und Optimierung ohne begründeten Anlass sollte verdienen diesen Namen als gut.

Vielleicht haben Sie nicht wirklich brauchen, um verbessern Sie Ihr Algorithmus die Komplexität, aber Sie sollten zumindest in der Lage sein zu berechnen, um zu entscheiden,...
Ich fand das eine sehr klare Erklärung von Big O Big-Omega und Big-Theta: xoax.net/comp/sci/algorithms/Lesson6.php
-1: Seufzen, ein weiterer Missbrauch der BigOh. BigOh ist nur ein asymptotische Obere Schranke und kann für alles verwendet werden und ist nicht nur CS verbunden. Reden BigOh, als wenn es ein eindeutige ist sinnlos (Ein linearzeit-Algorithmus auch O(n^2), O(n^3) usw.). Sagen, es hilft uns, Messen der Wirkungsgrad ist irreführend zu. Auch, was ist mit dem link, um die Komplexität von Klassen? Wenn alles, was Sie interessiert, ist Techniken zum berechnen der Laufzeiten von algorithmen, wie ist das relevant?
Big-O nicht Messen Effizienz; es misst, wie gut ein Algorithmus skaliert mit der Größe (es könnte für andere Dinge als die Größe auch, aber das ist, was wir wahrscheinlich hier interessiert) - und das nur asymptotisch, also, wenn Sie Pech ein Algorithmus mit einem "kleineren" groß-O kann langsamer sein (wenn die Big-O gilt für Zyklen) als eine andere, bis Sie in extrem großer Zahl.
Die Wahl eines Algorithmus auf der Grundlage seiner Big-O Komplexität ist in der Regel ein wesentlicher Bestandteil der Programm-Entwurf. Es ist definitiv nicht ein Fall von "premature optimization", die in jedem Fall ist eine viel missbrauchte selektiven Zitat.

InformationsquelleAutor sven | 2008-08-06

Schreibe einen Kommentar