我正在尝试创建简单的冒泡排序代码。我得到的错误是索引超出范围。只是想弄清楚我做错了什么。
我尝试使用不同的括号并更改i变量。
user_array = list()
last = len(user_array)
def swap(a,b) :
temp = a
a = b
b = temp
return (a,b)
for i in range(0,10):
word = input ('Enter a number into the array :')
user_array.append(word)
print (user_array[4])
last = len(user_array)
swapped = True
while swapped == True :
swapped = False
i = 0
while i < last :
if user_array[i]>user_array[i+1] :
swap (user_array[i],user_array[i+1])
swapped = True
i = i+1
print (user_array)
代码应按升序对输入数字列表进行排序
答案 0 :(得分:1)
好,就这样。
def bubble_sort( a ) :
for i in range(len(a)-1) :
for j in range(i+1, len(a)) :
if a[i] > a[j] :
a[i], a[j] = a[j], a[i] # swap. simple, isn't it?
return a
print bubble_sort( [6,3,6,23,7,5,8,4e6] )
[3, 5, 6, 6, 7, 8, 23, 4000000.0]
主要外卖商品
for
一次循环进入另一个循环–就是这样。是的,不要使用while
循环,它们往往会永远运行且难以调试或无法完成。