Array mit Elementen sehr schnell sortieren?!

14/09/2007 - 20:18 von Andy Dorwald | Report spam
Hallo NG,

ich möchte gerne ein Array sehr schnell sortieren. Habe auch schon sehr
viele Beispiele im Netz gefunden (z. B. BubbleSort, QuickSort und weitere
Varianten). Das Problem ist jedoch, dass es kein flaches Array ist, sondern
eines mit Private Type:

Private Type MyArr
Reihe as Long
Zeile as Long
Info as String
End Type

Dim MyTestArr(17895) as MyArr

Hier müsste ich nun nach Reihe sortieren und alle Zeilen, dessen Reihe die
gleiche Nummer hat ebenso.

Mit einem einfachen For...Next innerhalb eines For...Next ginge das zwar
schon, doch ist das Array sehr groß und wird dazu noch sehr oft neu gefüllt.
Daher ist es sehr wichtig, dass die Routine super schnell ist...

Das schnellste, was ich fürs Array-sortieren bisher gefunden hatte, war
dieses hier: http://www.activevb.de/tipps/vb6tip...p0645.html
Das tolle daran ist, dass die ganze Sortiergeschichte über Assembler làuft
und wirklich atemberaubend schnell ist. Doch habe ich keine Ahnung, wie ich
das auf meine Anforderung anpassen soll? Mir qualmt total der Kopf! ;-)

VG
Andy
 

Lesen sie die antworten

#1 Andy Dorwald
14/09/2007 - 20:57 | Warnen spam
Nachtrag: Was spricht eigentlich gegen die Verwendung eines ungebundenen
Recordsets?

Set RS = New ADODB.Recordset
With RS
RS.Fields.Append "Feld1", adInteger
RS.Fields.Append "Feld2", adInteger
RS.Fields.Append "Feld3", adVarChar, 15
.
.
.
.Sort = "Feld2,Feld3"
.
.

Das scheint sehr schnell zu gehen. Doch WARUM verwendet man anstelle von
Arrays nicht prinzipiell ADO-Recordsets? Also müsste doch irgendwo ein Haken
an der Sache sein???

Andy

Ähnliche fragen