Na zajęciach zajmujemy się algorytmami sortowania i chociaż dobrze je rozumiem, kiedy o nich mówię i piszę pseudokod, mam problemy z napisaniem dla nich właściwego kodu.
Oto moja próba w Pythonie:
mylist = [12, 5, 13, 8, 9, 65]
def bubble(badList):
length = len(badList) - 1
unsorted = True
while unsorted:
for element in range(0,length):
unsorted = False
if badList[element] > badList[element + 1]:
hold = badList[element + 1]
badList[element + 1] = badList[element]
badList[element] = hold
print badList
else:
unsorted = True
print bubble(mylist)
Teraz to (o ile mogę powiedzieć) sortuje poprawnie, ale po zakończeniu po prostu zapętla się w nieskończoność.
W jaki sposób można naprawić ten kod, aby funkcja zakończyła się poprawnie i poprawnie sortuje listę dowolnego (rozsądnego) rozmiaru?
PS Wiem, że tak naprawdę nie powinienem mieć wydruków w funkcji i powinienem mieć zwrot, ale jeszcze tego nie zrobiłem, ponieważ mój kod jeszcze nie działa.