Delphi5 Arraysortierung

Hallo!
Ich habe folgenden Record und ein Problem!?!

type TEventValues=record
Betrag:Array[1…10] of Extended;
Datum:Array[1…10] of TDateTime;
Text,Art:Array[1…10] of String;
end;
Var EventValues:TEventValues;

Mein Ziel ist, EventValues nach Datum aufsteigend zu sortieren, wobei die anderen Felder mitsortiert werden sollen.
Hat jemand eine Idee oder gibt es schon eine fertige Procedur in Delphi?
Vielen Dank!

Du kannst die üblichen Sortieralgorithmen verwenden (Quicksort oder Bubblesort oder was auch immer). Dabei verwendest du zum Vergleich eben das Datum. Stör dich nicht, wenn zwei daten gleich sind, dann kommt das Element einfach davor (oder dahinter, ist egal).
So erhältst du eine vor-sortierte Liste. Darin suchst du die (zusammenhängende) Teile, welche das gleiche Datum haben und behandelst das als (sub-)Liste, die du nach -was wars noch?- dem zweiten Kriterium sortierst usw.

Viel Spaß, Jochen

PS: Wenn du riesige Listen hast, könnte die Sache schneller werden, wenn du noch einen Pointer ins Record einfügst (und überhaupt mit verketteten Listen ansastatt mit Arrays arbeitest. Jedesmal, wenn ein Vergleich unentschieden ist, fügst du das neue Element oberhalb ein und weist dem Pointer das folgende Record zu. So findest hast du nach dem ersten Durchgang schon das korrekte Set der Sublisten für den nächsten Durchgang.

Ähhhhm…
Vielleicht ist es ja ne doofe Frage. Aber wie geht Bubble- oder Quicksort? Kann man das irgendwo nachlesen?
Hast Du ein Beispiel oder Codefragmente?
Danke!

Noch ne Frage. Die Idee mit dem Pointer ist sehr gut. Leider bin ich bei Zeigern noch sehr unsicher. Werd es mir aber aneignen. Hab auch noch nie was von verketteten Listen gehört. Kannst Du mir ein kleines Beispiel von verketteten Listen geben?
Danke!

Ähhhhm…
Vielleicht ist es ja ne doofe Frage. Aber wie geht Bubble-
oder Quicksort? Kann man das irgendwo nachlesen?
Hast Du ein Beispiel oder Codefragmente?
Danke!

Nachzulesen im Buch Algorithmen von Sedgewick, den Verlag hab ich vergessen, konkret für Delphi auch in den Büchern von Doberenz und Kowalski (Delphi n.n für Profis) und in Büchern zur Numerischen Mathematik.

Bubblesort ist sehr einfach (und langsam), kannst du dir auch selbst herleiten. Gehe alle deine Elemente durch. Für jedes Element: Vergleiche es mit jedem folgenen Element. Wenn das folgene kleiner ist, tausche die beiden. Am Ende ist die Liste sortiert.

Jochen

Hab schon was im Netz gefunden. Trotzdem danke!

noch ein tip
in delphi (3 zumindest) gibt es eine sortier-procedure schon fix und fertig. man muß das array angeben und eine function, die zwei elemente ordnet. leider weiß ich den namen nicht mehr.
Du solltest das verwenden, der optimale algorithmus wird je nach größe des arrays benutzt. es lassen sich auch verkettete listen sortieren, die verschieden große elemente haben.
vielleicht hilft das weiter??
viel erfolg! chris