Python:气泡排序列表索引超出范围

时间:2019-10-09 12:47:26

标签: python list sorting indexing

我正在Python中进行气泡排序,但是由于我尚不知道的原因,当并且仅当我运行代码的第6行(如果array [如果array [ n]> array [n + 1] :)导致错误。

代码如下:

    n = 1
    b = len(array)
    while b > 1:
        while n < b:
            if array[n] > array[n+1]:
                array[n], array[n+1] = array[n+1], array[n]
            n += 1
        b -= 1
        n = 1
    return print(array)
array = [5,4,3,2,1]
bubblesort(array)```

1 个答案:

答案 0 :(得分:0)

工作代码更改最少:

def bubblesort(array):
    n = 0                # Updated
    b = len(array) - 1   # Updated
    while b > 0:         # Updated
        while n < b:
            if array[n] > array[n+1]:
                array[n], array[n+1] = array[n+1], array[n]
            n += 1
        b -= 1
        n = 0            # Updated
    print(array)         # Updated

array = [5,4,3,2,1]
bubblesort(array)