像整理桌面一样学插入排序:原理与代码
本文以“整理桌面”类比插入排序,核心思想是将元素逐个插入已排序部分的正确位置。基本步骤为:初始化第一个元素为已排序,从第二个元素开始,将其与已排序部分从后向前比较,找到插入位置后移元素,再插入当前元素。 以数组 `[5,3,8,2,4]` 为例:初始已排序 `[5]`,插入3(移5后)得 `[3,5]`;插入8(直接追加)得 `[3,5,8]`;插入2(依次后移8、5、3,插入开头)得 `[2,3,5,8]`;插入4(后移8、5,插入3后)完成排序。 代码实现(Python)通过双层循环:外层遍历待插入元素,内层从后向前比较并后移元素。时间复杂度O(n²),空间复杂度O(1),适用于小规模数据或接近有序数据,是原地排序且无需额外空间。 该排序类比直观体现“逐个插入”本质,对理解排序逻辑有帮助。
阅读全文