Algorithmus: Quick Sort

Von: , Frage gestellt am Mo, 17. Jul 2000

mist! ich brauche den quick sort und hab den algorithmus weder im kopf, noch zur hand. das grundprinzip weiß ich noch (den array in der mitte teilen, vergleichen und mit der entsprechenden hälfte so weiterverfahren, bis man bei der kleinstmöglichen "hälfte" ist und dann entsprechend einfügen)
an und für sich ja auch nicht schwer und ich wollte ihn mir ja selber zusammenstückeln. doch irgendwo hat sich natürlich wieder so ein blöder fehler eingeschlichen, den ich nicht und nicht finde...(offensichtlich stehe ich heute wieder mal ordentlich auf der leitung..)
wäre sehr dankbar für eine hilfe
(brauche den code in vb-script, kann aber ruhig auch c, metasprache oder sonst was sein (nur nicht assembler oder cobol - gott bewahre!))
dank im voraus,
jj

1 Antworten zu dieser Frage

  1. Antwort von nach 2 Stunden hilfreich
    Re: Algorithmus: Quick Sort

    Hi,

    hier ist einer in VB.

    Option Explicit

    Dim Feld(0 To 500)

    Private Sub Form_Load()
    Call Shuffle
    End Sub

    Private Sub Command1_Click()
    Dim X%

    Call QuickSort(LBound(Feld), UBound(Feld))
    List2.Clear

    For X = 0 To UBound(Feld)
    List2.AddItem Feld(X)
    Next X
    End Sub

    Private Sub Command2_Click()
    Call Shuffle
    End Sub

    Private Sub QuickSort(ByVal LB&, ByVal UB&)
    Dim P1&, P2&, Ref$, TEMP$

    P1 = LB
    P2 = UB
    Ref = Feld((P1 + P2) / 2)

    Do
    Do While (Feld(P1) < Ref)
    P1 = P1 + 1
    Loop

    Do While (Feld(P2) > Ref)
    P2 = P2 - 1
    Loop

    If P1 <= P2 Then
    TEMP = Feld(P1)
    Feld(P1) = Feld(P2)
    Feld(P2) = TEMP

    P1 = P1 + 1
    P2 = P2 - 1
    End If
    Loop Until (P1 > P2)

    If LB < P2 Then Call QuickSort(LB, P2)
    If P1 < UB Then Call QuickSort(P1, UB)
    End Sub

    Private Sub Shuffle()
    Dim X%, y%, aa$

    List1.Clear
    Randomize
    For X = 0 To UBound(Feld)
    aa = ""
    For y = 0 To 5
    aa = aa & Chr$(Rnd * 25 + 65)
    Next y
    List1.AddItem aa
    Feld(X) = aa
    Next X
    End Sub

    Wenn Du mehr wissen willst gibt einfach Quicksort in irgendeiner
    Suchmaschiene ein.

    Tschau
    Raubwuerger [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!