<p>我正在练习用不同的语言编写各种排序函数。我用python编写了一个使用递归调用的bubble sort,但是我不知道如何正确地终止递归。正如我现在所拥有的,程序排序正确,但超出了我的列表参数,并触发了一个错误:IndexError:list index out of range(在第29行)[即bubblesort(randomList)]</p>
<pre><code>import random
#create a list of 10 random ints between 0-99 to be sorted
def makeRandomList():
unsortedList=[]
for i in range(10):
unsortedList.<a href="https://www.cnpython.com/list/append" class="inner-link">append</a>(random.randrange(100))
print unsortedList
return unsortedList
def bubblesort(randomList):
i=0
while i<=len(randomList):
if randomList[i] > randomList[i+1]:
randomList[i], randomList[i+1] = randomList[i+1], randomList[i]
i+=1
if i<len(randomList):
bubblesort(randomList)
else: break
else:
i+=1
#for testing purposes
print randomList
return randomList
randomList=makeRandomList()
sortedList=bubblesort(randomList)
print "sorted list: ", sortedList
</code></pre>