Zeitkomplexität einfügen in einem heap

Ich versuche meistens verstehen die Argumentation hinter dem Großen O und O einfügen eines neuen Elements in einen heap. Ich weiß, ich kann die Antworten online, aber ich wirklich wie mit einem gründlichen Verständnis eher als die Suche nach Antworten online, und nur das Auswendiglernen blind.

So zum Beispiel, wenn wir haben die folgenden heap (dargestellt in array-format)

 [8,6,7,3,5,3,4,1,2] 

Wenn wir uns entscheiden, legen Sie ein neues element "4" unsere Palette wird nun wie folgt Aussehen

 [8,6,7,3,5,3,4,1,2,4] 

Wäre es platziert in index 9 und da dies ein 0-index-basierten array-seine Eltern-wäre-index 4 die element 5. In diesem Fall würden wir nicht brauchen, etwas zu tun, weil 4 < 5 und es verletzt nicht die binären heap-Eigenschaft. Also am besten Fall ist OMEGA(1).

Allerdings, wenn das neue element fügen wir 100 dann hätten wir zu nennen, die max-heapify-Funktion, die hat Laufzeit O(log n) und damit im schlimmsten Fall das einfügen ein neues element in den heap in O(log n).

Jemand kann mich korrigieren, wenn ich falsch bin, weil ich bin nicht sicher, ob mein Verständnis, oder Argumentation ist 100%?

Ja, du hast Recht. Aber wissen Sie, warum ist das einfügen in heap O(log n) und was bedeutet das?
Würde es helfen, wenn man erklären kann , ich kann nicht das richtige Verständnis...

InformationsquelleAutor user1010101 | 2015-03-02

Schreibe einen Kommentar