PDA

Vollständige Version anzeigen : Sortieren von Datenfeldern ( Arrays)


Michael Tomuschat
24.11.2000, 11:49
Hallo,

wie ist es möglich ein eindimensionales Feld zu sortieren?
So ein Basic sollte einem Access doch zur Verfügung stellen, oder muss man sich da den Sortieralgorithmus selber schreiben??

Antworten bitte an:
michael.tomuschat@planet-interkom.de

Merci vielmals

Michael

Manuela Kulpa
24.11.2000, 13:19
Hallo Michael!

Nun ja, da gibt’s verschiedene Sortieralgorithmen z.B. BubbleSort oder QuickSort, um nur zwei zu nennen!

Beispiele:

Sub BubbleSort(a() As Integer)
'
' Langsamste Sortierung: n^2 Vergleiche
'
' Aufrufende Konvention:
' Redim A(1 To 20) as Integer
' BubbleSort A()
'
Dim i As Integer, j As Integer, Low As Integer, Hi As Integer, Temp As Integer
Low = LBound(a)
Hi = UBound(a)
For i = Low To Hi - 1
For j = i + 1 To Hi
If a(i) > a(j) Then
Temp = a(i)
a(i) = a(j)
a(j) = Temp
End If
Next j
Next i
End Sub

Sub QuickSort(a() As Integer, ByVal Low As Integer, ByVal Hi As Integer)
'
' Sehr schnelle Sortierung: n Log n Vergleiche
'
' Aufrufende Konvention:
' Redim A(1 To 20) as Integer
' QuickSort A(), 1, 20
'
Dim MidValue As Integer, i As Integer, j As Integer, Temp As Integer
If Hi <= Low Then Exit Sub
MidValue = a((Low + Hi) \ 2)
i = Low
j = Hi
Do While i <= j
If a(i) >= MidValue And a(j) <= MidValue Then
Temp = a(i)
a(i) = a(j)
a(j) = Temp
i = i + 1
j = j - 1
Else
If a(i) < MidValue Then i = i + 1
If a(j) > MidValue Then j = j - 1
End If
Loop
QuickSort a(), Low, j
QuickSort a(), i, Hi
End Sub

Wenn du noch mehr Varianten haben möchtest, melde dich!

LLAP

Michael Tomuschat
24.11.2000, 13:57
Hallo Manuela,

Danke für den Tip! Aber das ist ja wohl ein echtes Armutszeugnis für Access, dass es sowas nicht gibt. Ich komme aus der Linux - Ecke und bin ziemlich unerfahren, was Accessprogrammierung angeht, und ich muß sagen, ein Produkt wie M$-Access hätte dort keinerlei Chance!
Na ja, wenn der kunde es wünscht, macht man halt auch so was!
Gruss und danke nochmal

Michael

Mike
24.11.2000, 18:30
Hallo Michael,
wenn du schon ziemlich unerfahren in der Accessprogrammierung bist, dann solltest du mit solchen Urteilen etwas zurückhaltender sein. Die Frage ist, ob man Sortieren in dieser Form überhaupt braucht. Access bietet mit Abfragen u. ä. bessere Möglichkeiten.
Mike