数据结构——直接插入排序 一、基本知识1.排序默认递增。2.定义每一趟把待排序序列的第一个值插入到前面的已经排序好的序列。不申请额外的空间在原序列的基础上进行排序所以就需要避免覆盖的问题。二、基本原理将数组分成已排序区间和未排序区间1.第一个元素单独作为已排序区间剩余所有元素是未排序区间假设我们现在有一个待排序序列默认第一个数据就是一个已经排序好的序列因为我们此时将第一个数据看成一个单独的序列因为只有一个数据所以不存在是否有序无序也就是说它是一个有序序列。2.依次取出未排序区间的第一个元素向前插入到已排序区间的合适位置。以上面序列为例①第一趟思想未排序区间第一个元素是18根据比较得到1859又因为默认排序是递增的所以18应该在59的左边。操作此时我们已经知道18应该在0号下标59应该在1号下标但是插入排序是在原序列的基础上进行排序所以在数据移动时就需要将18提前拷贝下来避免覆盖之后让59进行数据移动到1号下标再让已经拷贝下来的18移动到0号下标。此时已排序好的序列就是18 59 从72开始就是未排序序列②第二趟思想此时72是未排序区间的第一个值将72和已排序区间59 18进行比较因为序列是递增的所以我们发现72比59大所以72应该放在59的后面。操作我们将待排序序列的第一个值拷贝下来因为计算机开始不知道这个待排序数据应该在那个下标所以我们还是要先将待排序的数据进行拷贝避免后续可能会出现的数据覆盖。将72和已经排序好的序列进行比较5972所以72应该放置在59的后面。所以此时 18 59 72 是已经排序好的序列从85开始是未排序好的序列。③第三趟思想此时85是未排序序列的第一个元素将85和已排序好的序列18 59 72进行排序因为序列是递增的所以我们发现85比72小应该放在72的后面。操作将待排序序列的第一个元素85拷贝下来和已经排序好的序列进行数据比较728585就放到72的后面④后续雷同............三、代码实现void Insert_Sort(int arr[], int len) { for (int i 1;i len;i)//控制的是趟数 { int temp arr[i]; int j i - 1; for (;j 0;i--)//控制的是对已经排好的序列从右至左依次遍历 { if (temparr[j])//如果比我取出来的temp大向后挪动 { arr[j 1] arr[j]; } else { break; //情况1遇到了不大于我的值停下来把值放回去。 } } //情况2越界了停下来把值放回去 arr[j 1] temp; } }

相关新闻

最新新闻

大模型生成边界:技术角色为何拒绝“护发养发”类任务

大模型生成边界:技术角色为何拒绝“护发养发”类任务

抱歉,这个任务我无法完成。你让生成的标题和内容是“护发养发”类生活话题,而我当前的角色设定是 CSDN 技术博客作者,只能处理编程、开发工具、框架、数据库、中间件、Agent、AI 工具等技术类主题。简单说:这两者不匹配&#xff0…

2026/9/4 4:07:00
Token机制与API代理网关:AI服务用量控制与限流实践

Token机制与API代理网关:AI服务用量控制与限流实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/4 1:51:38
Spring Boot 3 集成 Apollo 配置中心实战指南

Spring Boot 3 集成 Apollo 配置中心实战指南

抱歉,我无法根据这个标题生成一篇 CSDN 技术博客文章。原因是:这个标题指向的是音乐/艺术内容,与 CSDN 技术博客定位(编程、开发工具、框架、中间件、AI 工程等)不匹配。同时,你没有提供项目正文、关键词或…

2026/9/4 1:16:37
ZYNQ7020最小系统板量产级设计实战指南

ZYNQ7020最小系统板量产级设计实战指南

简介:本资源是一套已通过量产验证的ZYNQ7020最小系统板完整硬件设计资料,面向FPGA与嵌入式系统开发者、高校教学实验及工业边缘计算原型设计者,解决ZYNQ平台核心板自主设计、原理图复现、PCB叠层参考与3D结构协同开发等实际需求。压缩包共60个…

2026/9/4 1:11:36
STM32H743 QSPI Flash XIP运行程序:从Bootloader到内存映射实战

STM32H743 QSPI Flash XIP运行程序:从Bootloader到内存映射实战

简介:本资源是一套面向嵌入式开发工程师与进阶学习者的STM32H743单片机实战项目源码,聚焦于在QSPI Flash中安全运行用户应用程序的核心技术难点,适用于工业控制、智能终端等对程序存储可靠性与启动灵活性要求较高的场景。压缩包共458个文件&a…

2026/9/4 1:11:36
基于YOLO的端到端人脸表情识别:从多任务学习到工程部署全解析

基于YOLO的端到端人脸表情识别:从多任务学习到工程部署全解析

简介:本资源是一个基于YOLO架构实现的人脸表情识别系统,面向计算机视觉初学者、AI开发者及高校课程实践者,解决实时人脸检测与七类基础表情(如高兴、愤怒、悲伤等)分类的实际任务。系统融合YOLO高效目标检测能力与表情…

2026/9/4 1:06:36