quicksort fehler

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Arminius
User
Beiträge: 11
Registriert: Montag 4. April 2005, 16:27

Dienstag 5. April 2005, 10:04

hallo, ich bins wieder :D Hab hier quicksort vor mir und finde einfach den Fehler nicht. Kann mir jemand von euch helfen?

Code: Alles auswählen

def quicksort(L,li,re):
    l=li
    r=re
    cut=L[0]
    while l<=r:
        while L[l]<cut:
            l=l+1
        while L[r]>cut:
            r=r-1
        if l<=r:
            L[l],L[r]=L[r],L[l]
            l=l+1; r=r+1
    if li<r:
        quicksort(L,li,r)
    if re>l:
       quicksort(L,l,re)

L=[5,2,6,8,4]
x=len(L)-1
quicksort(L,0,x)
print L
was ist denn hierdran falsch???
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Dienstag 5. April 2005, 12:48

Hi!

Schau mal:

Code: Alles auswählen

...
while l<=r:
    print r       # <-
    while L[l]<cut:
...
Beim 2. Durchlauf ist r = 5. Das Element L[5] gibts aber nicht :wink:

Gruß, mawe
Antworten