AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Heapsort erklären?

Ein Thema von AlexII · begonnen am 3. Jul 2011 · letzter Beitrag vom 5. Jul 2011
 
Woyzeck

Registriert seit: 9. Jun 2009
60 Beiträge
 
#5

AW: Heapsort erklären?

  Alt 5. Jul 2011, 18:43
hallo,

hab das Video jetzt nicht zuende geschaut. Aber grundsätzlich macht man beim Heapsort 3 Schritte.

Im ersten Schritt wird das Array oder die Liste oder wo auch immer deine Daten drinstehen sequenziell in einen Binärbaum "eingetragen". (Das macht man natürlich nur in Gedanken. Beim Programmieren ist der Heap ja weiterhin ein Feld) Stichwort: sequentielle Darstellung eines Binärbaums.

Nun kommt der zweite Schritt: Das Herstellen der Heapeigenschaft.
Hierzu muss immer der parent-Knoten größer sein, als seine Kinder.
Dazu gehst du dein Feld von hinten bzw. deinen Baum/Heap von unten durch und suchst ein Element, das kleiner ist als sein Vorgänger. Ist das der Fall tauschst du und fängst wieder von hinten an, nach Verletzungen der Heapeigenschaft zu suchen.

Jetzt folgt der dritte Schritt: Nun hat man ja das größte Element in der Wurzel stehen, also tauscht man das mit dem letzten Element (Im ersten Schritt ist das das Element ganz unten rechts). Nun musst du die Wurzel "einsinken" lassen, da sie ja nicht mehr das größte Element ist. Du vergleichst also mit den Kindern und tauscht mit dem größeren der Kinder, damit die Heapeigenschaft wieder hergestellt wird. Das machst du so lange, bis die neue Wurzel an einem Punkt angekommen ist, wo die Kinder beide kleiner sind.

Das letzte Element steht nun an seiner richtigen Position.

Danach tauschst du die Wurzel mit dem vorletzten Element und lässt diese wieder einsinken.
und so weiter. und so weiter.

Hoffe, das hilft ein wenig beim Verstehen.
Am besten mal aufzeichnen und nachvollziehen.

Gruß Woyzeck
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz