【模版】插入排序
插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
算法步骤:
- 将第一个数组元素视为有序元素,后面的数组元素视为一段无序序列。
- 从第二个元素开始,每个元素一直和前面的元素比较,如果待插元素比正在比较的元素小,那么把有序区正在比较的元素往后放,继续和前面比较,直到遇到不大于自己的元素或者代插元素成为第一个元素为止。
- 代插元素插入。
- 不断重复,直到所有元素都变得有序。
代码实现:
void insertionSort (int arr[],int len) {
for (int i=1;i<len;i++) {
int now = a[i],j; //记录一下待插牌,因为一会还要放回去
for (int j=i-1,j>=0;j--) {
if (a[j] > now)
a[j+1]=a[j];
else break;
}
a[j+1] = now;
}
}
图解:
算法复杂度:
最差时间复杂度和最优时间复杂度均为O(n2)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!