В классе мы выполняем алгоритмы сортировки, и, хотя я прекрасно понимаю их, когда говорю о них и пишу псевдокод, у меня возникают проблемы при написании реального кода для них.
Это моя попытка в Python:
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)
Теперь, это (насколько я могу судить) сортирует правильно, но как только оно завершается, оно просто зацикливается бесконечно.
Как исправить этот код, чтобы функция правильно и правильно завершила сортировку списка любого (разумного) размера?
P.S. Я знаю, что на самом деле у меня не должно быть отпечатков в функции, и у меня должен быть возврат, но я просто еще этого не сделал, так как мой код еще не работает.