[数据结构]排序之插入排序

server/2025/3/17 14:49:12/

1.基本思想:

直接插入排序是一种简单的插入排序法,其基本思想是:把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列

2直接插入排序:

当插入第i(i>=1)个元素时,前面的array[0],array[1],…,array[i-1]已经排好序,此时用array[i]的排序码与 array[i-1],array[i-2],…的排序码顺序进行比较,找到插入位置即将array[i]插入,原来位置上的元素顺序后移
注:基础不好的同学在写排序的时候建议先写单趟再写整体

单趟思想:将一个数字插入有序区间

// 插入排序---升序
void InsertSort(int* a, int n)
{for (int i = 1; i < n; i++)//第一个数不需要排所以从1开始排{int end=i-1;int temp=a[i];//将temp插入0~end区间中,保持有序while (end >= 0){if (temp < a[end]){a[end + 1] = a[end];//比end大那么把此时比temp大的数往后挪一位end--;}else{break;//break出来以后有两种情况,第一种情况是数组元素比temp都大end一直减最后走到-1的位置;第二种情况是end走到一个比temp小的位置,不论是什么情况,end后面都为空并需要将temp插入进去}}a[end + 1] = temp;}
}

break出来以后得两种情况

直接插入排序的特性总结:
1. 元素集合越接近有序,直接插入算法>排序算法的时间效率越高
2. 时间复杂度: O(N^2)  最坏情况 O(N^2)  最好情况 O(N)
3. 空间复杂度: O(1) ,它是一种稳定的算法>排序算法
4. 稳定性:稳定


http://www.ppmy.cn/server/175720.html

相关文章

腾讯混元大模型简介

腾讯混元大模型简介 1、大模型概述2、大模型、人工智能与机器学习3、腾讯混元大模型简介4、混元大模型训练及调优5、混元大模型训练数据 1、大模型概述 大模型&#xff08;Large Models&#xff09;通常是指参数规模庞大、计算能力强大的人工智能模型&#xff0c;尤其在自然语言…

13 指针高级

指针高级 指针做函数参数 学习函数的时候&#xff0c;讲了函数的参数都是值拷贝&#xff0c;在函数里面改变形参的值&#xff0c;实参并不会发生改变。 如果想要通过形参改变实参的值&#xff0c;就需要传入指针了。 注意&#xff1a;虽然指针能在函数里面改变实参的值&#…

【Agent】OpenManus 项目架构分析

这是我录制的一个视频&#xff0c;主要是描述我理解的 OpenManus 的思维逻辑&#xff0c;通过这个小的思维逻辑的复现&#xff0c;为后面要再分析其他 Agent 的实现做一个准备。 1. 项目概述 OpenManus 是一个基于大语言模型的智能体框架&#xff0c;旨在提供一个无需邀请码的…

【2025】基于python+django的慢性病健康管理系统(源码、万字文档、图文修改、调试答疑)

系统功能结构图如下 慢性病健康管理系统 课题背景 随着全球人口老龄化的加剧以及生活方式的改变&#xff0c;慢性病的发病率呈上升趋势&#xff0c;给个人健康和社会医疗资源带来了巨大压力。传统的慢性病管理模式存在信息不畅、患者参与度低、医疗资源分配不均等问题&#xf…

Linux防火墙

centos7 通过firewall-cmd命令添加防火墙白名单 。 查看防护墙状态 firewall-cmd --state 或 systemctl status firewalld active (running)-->表示防火墙已经开启&#xff1b;inactive (dead)-->表示防火墙已经关闭 如果是图片这样就是关闭的 开关防火墙 启动防火墙…

VSTO(C#)Excel开发9:处理格式和字体

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 源码指引&#xff1a;github源…

【贪心算法4】

力扣452.用最少数量的剪引爆气球 链接: link 思路 这道题的第一想法就是如果气球重叠得越多那么用箭越少&#xff0c;所以先将气球按照开始坐标从小到大排序&#xff0c;遇到有重叠的气球&#xff0c;在重叠区域右边界最小值之前的区域一定需要一支箭&#xff0c;这道题有两…

基础输入输出技术深度解析与实践指南

1.理解文件 1-1 狭义理解 • ⽂件在磁盘⾥。 • 磁盘是永久性存储介质&#xff0c;因此⽂件在磁盘上的存储是永久性的。 • 磁盘是外设&#xff08;即是输出设备也是输⼊设备&#xff09;。 • 磁盘上的⽂件 本质是对⽂件的所有操作&#xff0c;都是对外设的输⼊和输出 简称 I…