简体   繁体   English

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

[英]Python: List index out of range on Bubble Sort

I'm making Bubble Sort in Python, but for a reason I don't know of yet, a "List index out of range" error happens when and only when I run the code, with line 6 (if array[n] > array[n+1]:) causing the error.我正在 Python 中进行冒泡排序,但由于我还不知道的原因,当且仅当我运行代码时,才会发生“列表索引超出范围”错误,第 6 行(如果数组 [n] > array[n+1]:) 导致错误。

Here's the code:这是代码:

    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)```

Working code with minimum changes:更改最少的工作代码:

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)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM