hilfe zu dem Quicksort

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • hilfe zu dem Quicksort

    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
    '___________________________________________________
    '
    Zuletzt geändert von JF/-W; 08.05.2003, 10:03.

  • #2
    Re: hilfe zu dem Quicksort

    Original geschrieben von JF/-W
    Do
    Do While vntArray(i,Spalte) < vntTestWert
    i = i + 1
    Loop

    Do While vntArray(j,Spalte) > vntTestWert
    j = j - 1
    Loop
    da einfach die kleiner und größer-zeichen umdrehen, sollte passen (spontane vermutung *g*)
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      ja, stimmt auch. Mir ist es nach dem Posting auch eingefallen.
      Trotzdem danke für deine schnelle hilfe.

      Gruß JF/-W

      Kommentar

      Lädt...
      X