Ich bin neu im Verständnis von Algorithmen der Informatik. Ich verstehe den Prozess der binären Suche, habe aber ein leichtes Missverständnis mit der Effizienz.
Bei einer Größe von Elementen würde es im Durchschnitt Schritte dauern, um ein bestimmtes Element zu finden. Nimmt man den Logarithmus zur Basis 2 beider Seiten, so ergibt sich . Wäre die durchschnittliche Anzahl der Schritte für den binären Suchalgorithmus also nicht ?
Dieser Wikipedia-Artikel über den binären Suchalgorithmus besagt, dass die durchschnittliche Leistung . Warum ist das so? Warum ist diese Nummer nicht ?
algorithms
runtime-analysis
binary-search
DrPepper
quelle
quelle
Antworten:
Wenn Sie die Basis des Logarithmus ändern, unterscheidet sich der resultierende Ausdruck nur durch einen konstanten Faktor, der per Definition der Big-O-Notation impliziert, dass beide Funktionen hinsichtlich ihres asymptotischen Verhaltens derselben Klasse angehören.
Zum Beispiel wobei .C=1
So und unterscheidet sich durch eine Konstante , und somit beide erfüllt sind: Im allgemeinen ist für positive ganze Zahlen und größer als 1 ist .log 2 n C log 10 n ist O ( log 2 n ) log 2 n ist O ( log 10 n ) log a n O ( log b n ) a bLog10n Log2n C
Eine weitere interessante Tatsache mit logarithmischer Funktionen ist , dass , während für konstante , ist nicht , aber ist seit unterscheidet sich von nur durch den konstanten Faktor .n k O ( n ) log n k O ( log n ) log n k = k log n log n kk > 1 nk O ( n ) Lognk O ( logn ) Lognk= k logn Logn k
quelle
Zusätzlich zu der Antwort von fade2black (die völlig korrekt ist) ist anzumerken, dass die Notation " " mehrdeutig ist. Die Basis ist nicht wirklich angegeben und die Standardbasis ändert sich basierend auf dem Kontext. In der reinen Mathematik wird die Basis fast immer als (sofern nicht anders angegeben), während es in bestimmten technischen Zusammenhängen 10 sein können. In der Informatik ist die Basis 2 so allgegenwärtig, dass häufig als Basis 2 angenommen wird Artikel sagt nie etwas über die Basis.e logLog( n ) e Log
Aber wie bereits gezeigt wurde, spielt es in diesem Fall keine Rolle.
quelle