Entwickler-Ecke
Algorithmen, Optimierung und Assembler - Mergesort ganz einfach ?
Dsler - Mo 03.10.05 15:03
Titel: Mergesort ganz einfach ?
Hallo,
ich bin gerade dabei Delphi zu erlenen, habe einige Tutorials im netz gelesen, und mich informiert. Jetzt will ich Mergesort programmieren (ganz trivial, es soll am Ende nur funktionieren):-)
Im Netz und auch hier finde ich nur Codes, die sehr lang und kompliziert sind. Und ihre einzelnen Schritte kann ich nicht verstehen.. (
http://www.delphi-forum.de/viewtopic.php?t=35402&highlight=mergesort).
Gibt es einen kurzen einfachen Code, mit dem man Mergesort programmieren kann, oder kann mir einer vllt mal die "komplizierten" Schritte bei Mergesort-programm erklären?
Dsler - Di 04.10.05 18:12
..schon gemacht, benötige aber nen Code (ganz trivial)...werde aus wikipedia nicht richtig schlau
Gausi - Di 04.10.05 18:26
Ein triviales Stück Code wirst du kaum finden, da Mergesort nicht ganz trivial ist. Ich wette aber, dass man hier im Forum auch n Stück Code dazu findet. Da war mal einer, der hat nach und nach alle Sort-Verfahren durchgefragt. Mergesort war da auch bei, wenn ich mich recht erinnere.
Dsler - Mo 17.10.05 14:04
...langsam bin ich am verzweifeln. :-(
Versuch anddauernd ein Programm in Delphi zu erstellen, welches Zahlen durch Zufall erstellt, sie mit Mergesort sortiert, und anschließend wieder ausgibt...
komme einfach nicht weiter..
ich weiß noch nicht mal, wie ich anfangen soll und die ganzen "Code-Fragmente" im Netz bringen mir auch nichts.
Bitte helft mir!!
retnyg - Mo 17.10.05 14:06
guck mal
motzi 's pointertutorial an, da ist ein einfacher mergesort algo implementiert
Dsler - Mo 17.10.05 14:32
..finde das tutorial in bezug auf mergesort sehr kompliziert. Ich hab einen Implementierungs-Teil, nur ich weiß nicht weiter. Wie muss ich vorgehen, damit ich das Programm vollständig zum Laufen kriege..
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35:
| procedure mergesort(links:integer, rechts:integer); var i,j,k,mid:integer; b: array[links..rechts] of datatype; begin if (rechts-links>0) then begin mid := (rechts+links) div 2; mergesort(links, mid); mergesort(mid+1, rechts); for i:=mid downto links do b[i] := a[i]; for j:=mid+1 to rechts do b[rechts+mid+1-j] := a[j]; for k:=links to rechts do begin if b[i]<b[j] then begin a[k]:=b[i]; i:=i+1; end else begin a[k]:=b[j]; j:=j-1; end; end; end; end; |
wo muss ich was noch hinschreiben im programm...z.B. Eingabefelder, Button,..
Moderiert von
raziel: Code- durch Delphi-Tags ersetzt
retnyg - Mo 17.10.05 14:53
Dsler hat folgendes geschrieben: |
wo muss ich was noch hinschreiben im programm...z.B. Eingabefelder, Button,.. |
um den algo bei dir zu implementieren musst du nur
1. wissen, welche werte sortiert werden müssen
2. mergesort funktion und beispiel so lange studieren, bis dir klar wird wie du deine werte übergeben kannst.
das erfordert allerdings, dass du dein gehirn einsetzt :roll:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!