Einzelnen Beitrag anzeigen

r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#12

Re: Multidimensionales Array oder Packed Record ?

  Alt 24. Okt 2006, 20:19
Zitat von Bernd Nowak:
Irgednwelche ideen zu tlist.sort ?
Wollt die ganze Zeit schon antworten, bin aber nicht dazu gekommen...

Zitat:
wobei ich sagen muss das die Delphi 7 Hilfe sogar noch besser ist als die in TP2006.
Seh ich auch so...

Zu deinem Code:
- Die Bezeichner sind für mich sehr verwirrend, da sie nicht unbedingt den Konventionen entsprechen. Bsp: Typen beginnen mit einem T(nicht mit nem R, wie bei dir), Pointer auf Typen haben den selben Namen wie die Typen, nur mit dem P-Präfix(nicht, wie bei dir den Namen der Liste...)
- Du produzierst Speicherlocher. Alles, was du mit New erzeugst, musst du manuell freigeben
- nimm besser Klassen und ne TObjectList(am besten mit Template(siehe CodeLibrary)); dann musst du dich nicht mit den direkten Pointern rumärgern. Dereferenzieren macht Delphi für dich... Außerdem kannst du dann auch die entsporechenden Methoden mit reinpacken...
- Zum Sortieren, suchst du dir n passenden Algorithmus(SelectSort: einfach quadratisch, stabil; QuckSort: etwas komplizierter, schnell, instabil; InsertionSort: einfach, quadratisch, stabil, sehr gut bei fast sortierten Listen; MergeSort: komplizierter, gibt in unterschiedlichen Varianten; IntroSort: IMHO verbesserter QuckSort, komplizuierter, sehr schnell; ...) und schreibst zum Vergleich ne eigene Funktion(liefert -1, 0, 1 zurück), am besten als Methode der TCar-Klasse(oder, wie auch immer deine Datenklasse heißt). Die-Sortieren-Prozedur implementierst du dann am besten als Methode der Listenklasse. Diese Verwendet dann die Vergeleichsfunktion der Datenklasse. Des weiteren hat T(Object)List auch ne Sort Methode, der du ne Vergleichs-Funktion als CallBack übergeben musst. IMHO verwendet T(Object)List intern n QuickSort, was wieder bedeutet, dass das Verfahren instabil ist... Weiß nicht, ob das erwünscht ist...

Bei Fragen, fragen...

mfg

Christian
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat