插入排序
概述
插入排序 是一种简单直观的排序算法,通过逐个将元素插入已排序部分的正确位置来完成排序。它适用于小规模数据或基本有序的输入,体现了增量方法的设计思想。
定义
插入排序
插入排序的工作方式类似于整理手中的扑克牌:对于第 个元素(),将其与已排序子数组 中从右到左的元素逐一比较,找到正确位置后插入。该过程通过循环不变式保证正确性。
核心性质
- 原地排序(In-place):仅需常数个额外存储空间()。
- 稳定性(Stable):相等元素的相对顺序在排序后保持不变。
- 自适应(Adaptive):对基本有序的输入表现优异。
- 最坏情况时间复杂度:(输入逆序时)。
- 最好情况时间复杂度:(输入已有序时,内层循环仅执行一次比较)。
- 平均情况时间复杂度:。
章节扩展
第2章:入门
- 2.1 插入排序:使用插入排序作为第一个算法示例,引入循环不变式证明方法,并与归并排序进行对比以说明算法效率的重要性。