Hallo,
ich habe hier den code von dem Quicksort den ich benutze. Nun möchte ich diesen noch verändern, damit der nicht von A-Z sortiert sondern von Z-A
kann mir da jemand helfen??
danke
Gruß JF/-W
das ist mein code :
'
'Sortieren
'
Private Sub QuickSort(vntArray, intVon, intBis)
Dim i, j
Dim vntTestWert
Dim intMitte
Dim vntTemp
If intVon < intBis Then
intMitte = (intVon + intBis) \ 2
vntTestWert = vntArray(intMitte,Spalte)
i = intVon
j = intBis
Do
Do While vntArray(i,Spalte) < vntTestWert
i = i + 1
Loop
Do While vntArray(j,Spalte) > vntTestWert
j = j - 1
Loop
If i <= j Then
swapArray vntArray,i,j
i = i + 1
j = j - 1
End If
Loop Until i > j
If j <= intMitte Then
Call QuickSort(vntArray, intVon, j)
Call QuickSort(vntArray, i, intBis)
Else
Call QuickSort(vntArray, i, intBis)
Call QuickSort(vntArray, intVon, j)
End If
End If
End Sub
'___________________________________________________
'
Sub swapArray(arr,pos1,pos2)
'On Error Resume next
Dim temparr(60)
Dim i
ReDim temarr(bound)
For i = 0 To Dimension
temparr(i) = arr(pos1,i)
arr(pos1,i) = arr(pos2,i)
arr(pos2,i) = temparr(i)
Next
End Sub
'___________________________________________________
'
Function ArrayDims(arr)
Dim i , bound
On Error Resume Next
For i = 1 To 60
bound = LBound(arr, i)
If Err Then
ArrayDims = i - 1
Exit Function
End If
Next
End Function
'___________________________________________________
'ubbound for multi dim Arrays
Function ArrayUbound(arr)
Dim i , tmp
On Error Resume Next
While Err.Number = 0
tmp = arr (i, 0)
If Err Then
ArrayUbound = i - 1
Exit Function
End If
i=i+1
wend
End Function
'___________________________________________________
'
Function Zufallszahl (Obergrenze, Untergrenze)
randomize
Zufallszahl = CInt((Obergrenze - Untergrenze) * Rnd) + Untergrenze
End function
'___________________________________________________
'
ich habe hier den code von dem Quicksort den ich benutze. Nun möchte ich diesen noch verändern, damit der nicht von A-Z sortiert sondern von Z-A
kann mir da jemand helfen??
danke
Gruß JF/-W
das ist mein code :
'
'Sortieren
'
Private Sub QuickSort(vntArray, intVon, intBis)
Dim i, j
Dim vntTestWert
Dim intMitte
Dim vntTemp
If intVon < intBis Then
intMitte = (intVon + intBis) \ 2
vntTestWert = vntArray(intMitte,Spalte)
i = intVon
j = intBis
Do
Do While vntArray(i,Spalte) < vntTestWert
i = i + 1
Loop
Do While vntArray(j,Spalte) > vntTestWert
j = j - 1
Loop
If i <= j Then
swapArray vntArray,i,j
i = i + 1
j = j - 1
End If
Loop Until i > j
If j <= intMitte Then
Call QuickSort(vntArray, intVon, j)
Call QuickSort(vntArray, i, intBis)
Else
Call QuickSort(vntArray, i, intBis)
Call QuickSort(vntArray, intVon, j)
End If
End If
End Sub
'___________________________________________________
'
Sub swapArray(arr,pos1,pos2)
'On Error Resume next
Dim temparr(60)
Dim i
ReDim temarr(bound)
For i = 0 To Dimension
temparr(i) = arr(pos1,i)
arr(pos1,i) = arr(pos2,i)
arr(pos2,i) = temparr(i)
Next
End Sub
'___________________________________________________
'
Function ArrayDims(arr)
Dim i , bound
On Error Resume Next
For i = 1 To 60
bound = LBound(arr, i)
If Err Then
ArrayDims = i - 1
Exit Function
End If
Next
End Function
'___________________________________________________
'ubbound for multi dim Arrays
Function ArrayUbound(arr)
Dim i , tmp
On Error Resume Next
While Err.Number = 0
tmp = arr (i, 0)
If Err Then
ArrayUbound = i - 1
Exit Function
End If
i=i+1
wend
End Function
'___________________________________________________
'
Function Zufallszahl (Obergrenze, Untergrenze)
randomize
Zufallszahl = CInt((Obergrenze - Untergrenze) * Rnd) + Untergrenze
End function
'___________________________________________________
'
Kommentar