Ich benutze die Methode Sort, um ein paar TObjectlisten zu sortieren.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| function Sortieren_Pfad(item1,item2:pointer):integer; begin result:=comparestr(AnsiUppercase(TObject1(item1).String1), AnsiUppercase(TObject1(item2).string1)) end; [...] Liste1.Sort(Sortieren_Pfad); |
Sortierverfahren ist laut OH Quicksort, was ja bekannterweise in aller Regel sehr schnell ist.
Ich kann aber sehr leicht Fälle konstruieren (und die können in meiner Anwendung durchaus "zufällig" entstehen), in der Quicksort ungefähr genauso "schnell" ist wie Bubblesort.
Es scheint so zu sein, dass bei Listen der Form 1,2,3,4,...10000,1,2,3,4,...,10000 der Quicksort versagt. Evtl. kann das ja auch einer mal verifizieren.
Kann man irgendwie weiter in die Methode Sort eingreifen (um z.B. bei der Wahl des Pivotelements nicht immer die Mitte der Folge zu nehmen) oder bleibt mir nichts anderes übrig, als mein eigenes Sortierverfahren zu schreiben?
Moderiert von
UGrohne: Topic aus Sonstiges verschoben am Mo 17.01.2005 um 13:44
We are, we were and will not be.