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

为什么该插入排序实现的首个元素未正确参与排序?

问题排查结果

你贴出的插入排序代码本身逻辑是正确的,本地运行测试用例insertion_sort([200, 2, 56, 234, 5, 21])会得到正确结果[2, 5, 21, 56, 200, 234]。你遇到的首个元素未参与排序的问题,是实际运行的代码和贴出的代码存在差异导致,常见错误点如下:

  • 内层循环终止值写错:如果把range(i - 1, -1, -1)误写为range(i - 1, 0, -1),循环不会遍历到索引为0的首个元素,待插入元素比首个元素小时无法插入到最前面,导致首个元素一直留在原位。
  • 最终赋值语句缩进错误:如果list[j+1] = element这行代码的缩进和if/else对齐,被包含在内层for循环内部,那么当内层循环遍历到j=-1退出时,赋值逻辑不会执行,待插入元素无法写入索引0的位置。
  • break语句位置错误:如果把break写在if分支内而非else分支,每次完成一次元素移动就直接终止内层循环,不会继续向前比较首个元素,自然无法插到首个元素前面。

核对修正上述问题后即可得到正确排序结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 02:54:04