Python-冒泡排序错误索引超出范围

时间:2019-08-20 00:57:53

标签: python sorting

我正在尝试创建简单的冒泡排序代码。我得到的错误是索引超出范围。只是想弄清楚我做错了什么。

我尝试使用不同的括号并更改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)

代码应按升序对输入数字列表进行排序

1 个答案:

答案 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]

主要外卖商品

  1. 创建一个单独的函数,不要简单地将所有代码填充到文件中
  2. 使其变得简单
  3. 使其易于阅读和理解
  4. 气泡排序通常为2 for一次循环进入另一个循环–就是这样。
  5. 别忘了返回值=)

是的,不要使用while循环,它们往往会永远运行且难以调试或无法完成。