AGB  ·  Datenschutz  ·  Impressum  







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

Bottom Up Heapsort direkt auf array

Ein Thema von Hybrid666 · begonnen am 20. Jun 2008 · letzter Beitrag vom 20. Jun 2008
Antwort Antwort
Hybrid666

Registriert seit: 15. Jul 2006
Ort: Erster Stock
250 Beiträge
 
Delphi 7 Personal
 
#1

Bottom Up Heapsort direkt auf array

  Alt 20. Jun 2008, 12:11
Hi,

wir sollen an der Uni den Bottom Up Heapsort algorhytmus schreiben, sollen allerdings KEINEN Baum aufbauen, sondern direkt auf dem array arbeiten.
Kann mir einer sagen wie das genau geht? weil ich finde immer nur anleitungen und beispiele auf einem Baum. Klasse wäre auch ein Delphi beispiel (keine angst, will nicht das ihr meine aufgaben löst, ich muss das ohnehin in einer anderen sprache machen, aber ich brauche einfach was um mir das zu veranschaulichen). Und dann noch eine generelle Frage zu dem algo: Wie lange muss ich das sortierverfahren (austauschen und absickern) ausführen, bis der array sortiert ist? So oft, wie ich elemente habe, nur halb so oft oder muss ich jedesmal manuell prüfen, ob er sortiert ist (was keinen sinn machen würde, weil wir den bottom-up machen sollen wegen weniger vergleichen als heapsort).

EDIT: Habe noch was vergessen: Als vergleichsoperatoren dürfen wir NUR kleiner als verwenden, also vergleich mit = oder > sind nicht möglich, da wir ein genereisches paket machen sollen und doppelte elemente dürfen NICHT im array sein (davon kann man von vornerein ausgehen).

Danke für eure hilfe,

MfG Hybrid666
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#2

Re: Bottom Up Heapsort direkt auf array

  Alt 20. Jun 2008, 12:34
Im Kapitel 4 der Vorlesung http://www.informatik.uni-freiburg.d...o2/slides.html wird unter anderem Bottom-up Heapsort beschrieben. Da wird zwar ein Sortable a verwendet, man kann's aber leicht auf Arrays übertragen. Ansonsten schau mal hier, wenn's nicht klappt.

Gruß Gammatester
  Mit Zitat antworten Zitat
Hybrid666

Registriert seit: 15. Jul 2006
Ort: Erster Stock
250 Beiträge
 
Delphi 7 Personal
 
#3

Re: Bottom Up Heapsort direkt auf array

  Alt 20. Jun 2008, 12:41
genau der übertrag von einem baum auf einen array ist mein problem, ich weiß nicht wie ich jeweils die richtigen "söhne" im array finden soll. aber danke erstmal für die vorlesungsfolien!
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#4

Re: Bottom Up Heapsort direkt auf array

  Alt 20. Jun 2008, 12:52
Zitat von Hybrid666:
genau der übertrag von einem baum auf einen array ist mein problem, ich weiß nicht wie ich jeweils die richtigen "söhne" im array finden soll. aber danke erstmal für die vorlesungsfolien!
Die Indexrechnung dafür ist doch angegeben. In meiner Implementation im Link habe ich das nur übertragen, ich mußte allerdings "nur" implementieren nicht unbedingt 100% verstehen :wink:

Gruß Gammatester
  Mit Zitat antworten Zitat
Hybrid666

Registriert seit: 15. Jul 2006
Ort: Erster Stock
250 Beiträge
 
Delphi 7 Personal
 
#5

Re: Bottom Up Heapsort direkt auf array

  Alt 20. Jun 2008, 13:24
ahhhh okay, hatte ich überserhen

ist das der ganze code? oder muss ich vorher noch eine heapsortierung machen? (also das der array ein heap ist)
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#6

Re: Bottom Up Heapsort direkt auf array

  Alt 20. Jun 2008, 17:20
Zitat von Hybrid666:
ist das der ganze code? oder muss ich vorher noch eine heapsortierung machen? (also das der array ein heap ist)
Wahrscheinlich hat's sich schon erledigt, aber: Ja, pushdown wird wie beim normalen heapsort eingesetzt. Pseudocode:

Delphi-Quellcode:
for i:=n div 2 downto 1 do pushdown(i,n);
for i:=n downto 2 do begin
  swap(1,i);
  pushdown(1,i-1);
end;
Gruß Gammatester
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz