我们班在学习排序算法,虽然我能够理解当讲述它们并写伪代码时的内容,但是我在写实际代码时遇到了困难。
以下是我在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)
据我所知,以下代码可以正确排序,但是一旦完成排序,它就会无限循环。
如何修复此代码,使函数能够正确排序任何(合理大小的)列表并正常结束?
附言:我知道在一个函数中不应该有打印语句,并且应该有一个返回语句,但是因为我的代码还没有完全工作,所以我还没有这样做。