You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python冒泡排序出现List index out of range错误求助

解决冒泡排序的“List index out of range”错误

嘿,我来帮你搞定这个冒泡排序的索引越界问题!咱们一步步拆解问题:

错误的直接原因

你遇到的List index out of range错误,核心问题出在循环条件和数组索引的匹配上:

  • Python数组的索引是从0开始的,假设数组长度是b,那么最大有效索引是b-1
  • 你的内层循环条件是while n < b,这意味着n会取到b-1这个值,此时n+1就等于b,而array[b]是不存在的,直接触发索引越界

还有这些小问题需要修正

除了索引越界,代码里还有几个影响功能的细节:

  1. 缺失函数定义:你调用了bubblesort(array),但没有定义这个函数,得补上def bubblesort(array):
  2. 初始索引错误:你把n初始设为1,会跳过数组第一个元素(索引0)和第二个元素(索引1)的比较,应该从0开始遍历
  3. 冗余的return语句:return print(array)是多余的——print()函数返回None,所以你相当于返回了None,应该把打印和返回分开

修正后的完整代码

def bubblesort(array):
    n = 0  # 从0开始遍历,匹配数组的0索引规则
    b = len(array)
    while b > 1:
        while n < b - 1:  # 循环条件改为n < b-1,避免n+1超出最大索引
            if array[n] > array[n+1]:
                array[n], array[n+1] = array[n+1], array[n]
            n += 1
        b -= 1
        n = 0  # 重置索引为0,开始下一轮排序
    print(array)
    return array  # 可选:返回排序后的数组,方便后续逻辑使用

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

验证效果

运行修正后的代码,会输出[1, 2, 3, 4, 5],完美完成冒泡排序,再也不会触发索引越界错误啦!

内容的提问来源于stack exchange,提问作者Szabi60

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:11:13