You need to enable JavaScript to run this app. 如何修复编写插入排序时出现的List index out of range错误
优惠活动
大模型
产品
解决方案
定价
更多

如何修复编写插入排序时出现的List index out of range错误

插入排序List index out of range错误触发原因及修复方案

List index out of range错误的本质是代码尝试访问了列表不存在的下标位置,插入排序实现过程中该错误通常由以下几种逻辑问题导致:

  • 外层循环边界设置错误:长度为n的列表合法下标范围是0~n-1,如果外层循环的终止值设为n,访问arr[n]时会直接触发越界。正常插入排序外层循环默认第一个元素为有序区间,应该从下标1遍历到下标n-1。
  • 内层比较循环缺少左边界判断:内层循环需要将当前待插入元素和前面的有序区间元素从后往前比较,如果只写了arr[j] > 待插入元素的判断条件,没有补充j >= 0的边界限制,当待插入元素比有序区间所有元素都小时,j会递减到-1,此时访问arr[j]就会触发越界。
  • 元素移动/赋值阶段用错下标:比如把移动元素时的arr[j+1]误写为arr[j],或者错误操作了有序区间外的下标位置。

你可以对照以下正确的Python插入排序实现检查你的代码:

def insertion_sort(arr):
    arr_len = len(arr)
    for i in range(1, arr_len):
        # 记录当前待插入元素
        current_val = arr[i]
        # 有序区间的最后一个元素下标
        j = i - 1
        # 先判断j不越界,再比较元素大小
        while j >= 0 and arr[j] > current_val:
            # 有序区间元素后移
            arr[j + 1] = arr[j]
            j -= 1
        # 插入当前元素到正确位置
        arr[j + 1] = current_val
    return arr

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 15:54:01