Hi Martin,
Warum (1 * 1) zu (x * y) und nicht 1 zu x (1 Schreiboperation auf x Leseoperationen)? Der resultierende Quotient stellt nach meinem Verständnis doch bereits ein mögliches Maß für eine Gewichtung dar. Warum multiplizierst Du hier zusätzlich?
Weil ich klar machen möchte, daß der Faktor _deutlich_ größer ist als 1.
O(1), weil Du 1 Schreibvorgang zu n Lesevorgängen in Beziehung setzt?
Ich berechne in beiden Fällen die Kosten in Abhängigkeit von der Zahl der durchgeführten Operationen. Ich glaube, mit den Variablennamen bin ich an der einen oder anderen Stelle nicht wirklich exakt umgegangen - x und y habe ich erst beim Korrekturlesen eingeführt, um sie von n abzugrenzen. (Für eine Seminararbeit hätte ich sicherlich sorgfältiger arbeiten müssen als für einen Forums-Beitrag.)
Was ist der Unterschied zwischen O(log (n)) und O(log n)? - keine Steinigung bitte ;-)
Ich schreibe Funktionsaufrufe immer mit runden Klammern (auch in Perl, wo das nicht notwendig wäre), und ich halte 'log' in diesem Kontext für eine Funktion.
...... Aber wie Frank völlig richtig sagte:
"Lineare Faktoren sind Schall und Rauch" -
Sagte er nicht: "Konstante Faktoren sind Schall und
Rauch"?
Ups - sorry.
Bei komplexen Operationen komme ich praktisch nie unterhalb von O(n) weg (die Darstellung der kompletten Hauptdatei ist beispielsweise eine Sortierung _aller_ Threads und damit etwa O(n * log (n)), und in diesem Kontext wären sogar lineare Faktoren weniger wichtig, nicht nur konstante.
Viele Grüße
Michael