Forum: Object-Pascal / Delphi-Language
Delphi
by Satty67,
15. Jun 2009
Ok, hab' mein Chaos-Projekt zum Testen von Sortierverfahren "etwas" aufgeräumt und die Sorter in Units ausgelagert. Sollte so nicht schwer sein, einen eigenen Sorter zum Vergleichen zu implementieren.
Ich will kein Gemecker, wegen der Programmierung, das war vorher noch wesentlich chaotischer, jetzt geht das etwas.
Drin sind BubbleSort, SelectionSort, QuickSort (Rekursiv) aus dem...
Forum: Object-Pascal / Delphi-Language
Delphi
by Satty67,
15. Jun 2009
Hallo alzaimar,
sowas hab' ich sogar schon geschrieben... Also eine Plattform, mit der ich InsertSort und Quicksort teste bzw. Varianten davon und Kombinationen incl. Kontrollausgabe ob auch richtig sortiert wird. Ist noch ein Überbleibsel aus dem letzten Marathon, bei dem ich mich der SkipList geschlagen geben musste ;)
Ich werd' das heute nach der Arbeit etwas überarbeiten, im jetzigen...
Forum: Object-Pascal / Delphi-Language
Delphi
by Satty67,
14. Jun 2009
Ich hatte ihm ja meinen Code angeboten, da ist der QuickSort Teil kleiner und Insertion gleich. Zudem ist er auch noch 10% schneller, aber er will seinen Code zum Laufen bringen, was ich verstehen kann.
Das er im Zweifel aber nur Insertion genommen hätte, statt meinen, hat mich doch erschreckt ;)
Forum: Object-Pascal / Delphi-Language
Delphi
by Satty67,
14. Jun 2009
Ach Du lieber Gott :oops:
Wenn zwei den Wald vor lauter Bäumen nicht sehen, sind dann beide dadurch entschuldigt, dass Sie zu zweit waren?
Bei Daniels Code fehlte damals der Insertion-Aufruf, weshalb der bei mir auch nicht funktionierte
Forum: Object-Pascal / Delphi-Language
Delphi
by Satty67,
10. Jun 2009
Also tut mir Leid, gegenüber Daniels Code sehe ich bei Dir keine Fehler. Operatoren wurden für absteigende Sortierfolge an den richtigen Stellen getauscht. Bleibt die Tatsache, das der Code bei mir auch noch nie funktioniert hat.
Den Code von Daniel hatte ich mir schon mal vorgenommen und bin dann zur Überzeugung gelangt, das es ein iteratives Quicksort werden sollte und Teile des rekursiven...
Forum: Object-Pascal / Delphi-Language
Delphi
by Satty67,
10. Jun 2009
Ja, glaube Daniel hat da irgendwie mitten drin aufgehört.
mein QuickInsertSort für IntArrays sieht so aus:
procedure SortIntArray(A: Array of Integer);
procedure QuickInsertSort(L,R: Integer);
var
I, J : integer;
S, P : Integer;
begin
Forum: Object-Pascal / Delphi-Language
Delphi
by Satty67,
10. Jun 2009
Also Deine Version scheint irgendwie ein Zwitter aus rekursiver und nicht rekursiver Version zu sein. Ich kenne nicht alle Varianten von QuickSort.
Stack-Überlauf lässt auf einen endlosen rekursiven Aufruf schließen oder eine zu große lokale Variable bei rekursiven Aufrufen (tippe bei Dir auf ersteres).
Das Du annimmst, dass Dein Code eigentlich richtig sein müsste, obwohl sporadische...
Forum: Object-Pascal / Delphi-Language
Delphi
by Satty67,
10. Jun 2009
Darf es auch die rekursive Variante sein, die finde ich übersichtlicher. Die Stellen mit Operatoren, die für aufsteigend/absteigend gedreht werden müssen, beschränkt sich da auf zwei Stück
procedure QuickSort(var A: array of Integer);
procedure QSort(LoIndex, HiIndex: Integer);
var
Lo, Hi: Integer;
Pivot: Integer;
Swap: Integer;
begin
Pivot := A;