考研要求掌握的C语言程度(插入排序)

插入排序是啥类型的排序

插入类型的

插入排序经常用在啥类型场景下

用在有序序列下的基础上插入新数据

时间复杂度分析

如果是有序的基础下,最好的时间复杂度是O(n);

普通情况下是O(n^2)

插入排序的原理是啥?

插入排序就是把待插入数据讲已排好顺序的树进行循环比较然后放在合适位置

例如:

已排序好的树有1  3  6;

待排序数是5,把5依次和上面数据进行比较,最终确定放在3后面

即1 3 5 6

代码实战

本次代码实现有从后往前循环比较

//插入排序,本次实现从小到大排序void insert_sort(int nums[],int len){int i=0,j=0;for(i=1;i<len;++i)//外层循环控制待排序数{int insertVal = nums[i];//用来临时存储带插入的数据//从待插入数据的位置的前一个开始往前面循环比较for(j=i-1;j>=0 && nums[j]>insertVal;--j)//前面的数据大于待插入数据,进入函数{nums[j+1]=nums[j];        }nums[j+1] = insertVal;//插入待排序数据}}

可执行代码如下

#include<stdio.h>
#include<string.h>
#include<time.h>
#include<stdlib.h>void swap(int &a,int &b)
{int tmp=a;a=b;b=tmp;
}void rangnums(int nums[],int len)
{srand(time(NULL));//初始化数组printf("初始化数组:");for(int i=0;i<len;i++){nums[i]=rand()%100+1;printf("%d ",nums[i]);}puts("");
}void print(int a[],int len)
{for(int i=0;i<len;i++){printf("%d ",a[i]);}puts("");
}//插入排序void insert_sort(int nums[],int len){int i=0,j=0;for(i=1;i<len;++i){int insertVal = nums[i];//用来临时存储带插入的数据for(j=i-1;j>=0 && nums[j]>insertVal;--j){nums[j+1]=nums[j];}nums[j+1] = insertVal;//插入待排序数据}}int main()
{int a[10]={92 ,79 ,49, 59, 86 ,38, 94, 64, 92, 3};rangnums(a,10);insert_sort(a,10);print(a,10);}

【注】数据结构不懂一定要动手画图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/8027.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

六:java 基础知识(6)-- Maven项目管理

目录 1. 引言 1.1 什么是 Maven 1.2 Maven 的优势 2. Maven 基础 2.1 Maven 的基本概念 2.2 Maven 的工作原理 2.3 Maven 的安装与配置 3. Maven 项目结构 3.1 Maven 项目的标准目录结构 3.2 POM 文件&#xff08;pom.xml&#xff09;概述 3.3 POM 文件的基本配置 4…

Centrifuge 5425R - 微量离心机技术数据详情——艾本德

离心机&#xff0c;作为实验室中的关键设备&#xff0c;扮演着分离、浓缩和纯化样品的重要角色。而在众多离心机型号中&#xff0c;Centrifuge 5425R 以其出色的性能和多功能性&#xff0c;成为了众多科研人员的首选。下面&#xff0c;我们就来详细了解一下这款微量离心机的技术…

【06】A-Maven项目SVN设置忽略文件

做Web项目开发时&#xff0c;运用的是Maven管理工具对项目进行管理&#xff0c;在项目构建的过程中自动生成了很多不需要SVN进行管理的文件&#xff0c;SVN在对源码进行版本管理时&#xff0c;需要将其忽略&#xff0c;本文给出了具体解决方案。 SVN设置忽略Maven项目中自动生成…

TDengine 签约蘑菇物联,改造通用设备工业互联网平台

在当前工业互联网迅猛发展的背景下&#xff0c;企业面临着日益增长的数据处理需求和智能化转型的挑战。通用工业设备的高能耗问题愈发突出&#xff0c;尤其是由这些设备组成的公辅能源车间&#xff0c;亟需更高效的解决方案来提升设备运行效率&#xff0c;降低能源消耗。为此&a…

革新汽车装配产线:MR30分布式IO模块引领智能制造新时代

在日新月异的汽车制造行业中&#xff0c;每一分每一秒的效率提升都意味着成本的降低与市场竞争力的增强。随着工业4.0时代的到来&#xff0c;智能化、自动化已成为汽车产线升级转型的关键词。在这场技术革命的浪潮中&#xff0c;MR30分布式IO模块以其高效、灵活、可靠的特点&am…

Qt第三课 ----------容器类控件

作者前言 &#x1f382; ✨✨✨✨✨✨&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f382; ​&#x1f382; 作者介绍&#xff1a; &#x1f382;&#x1f382; &#x1f382; &#x1f389;&#x1f389;&#x1f389…

CodeQL学习笔记(4)-CodeQL for Java(程序元素)

最近在学习CodeQL&#xff0c;对于CodeQL就不介绍了&#xff0c;目前网上一搜一大把。本系列是学习CodeQL的个人学习笔记&#xff0c;根据个人知识库笔记修改整理而来的&#xff0c;分享出来共同学习。个人觉得QL的语法比较反人类&#xff0c;至少与目前主流的这些OOP语言相比&…

动态规划28:376. 摆动序列

动态规划解题步骤&#xff1a; 1.确定状态表示&#xff1a;dp[i]是什么 2.确定状态转移方程&#xff1a;dp[i]等于什么 3.初始化&#xff1a;确保状态转移方程不越界 4.确定填表顺序&#xff1a;根据状态转移方程即可确定填表顺序 5.确定返回值 题目链接&#xff1a;376.…

【zlm】h264 vp9 尝试研究

目录 编译与使用libvpx 打包lib 解决方案一 libvpx直接引用 IVF格式 编译libvpx windows下编译libvpx 参考文章 编译与使用libvpx 我们用最新的&#xff1a; x86_64-win64-vs16 最简单的视频编码器&#xff1a;编译&#xff08;libx264&#xff0c;libx265&#xff…

顺序表专题

目录 0. 什么是数据结构&#xff1f; 0. 为什么需要数据结构&#xff1f; 1.顺序表的概念及结构 2.顺序表分类&#xff1a; 3.动态顺序表的实现 4. 顺序表的应用 5. 顺序表的问题及思考 0. 什么是数据结构&#xff1f; 数据结构是由“数据”和“结构”两词结合而来 什…

关于使用svgIcon 菜单折叠 显示文字情况

使用的工具&#xff1a;vue2&#xff0c;ant design vue 问题&#xff1a; **解决&#xff1a;在<svg-icon> 外面包一层 <a-icon> ** 使用: 在 main.js 中&#xff1a;

【JAVA毕业设计】基于Vue和SpringBoot的师生健康管理系统

博主说明&#xff1a;本文项目编号 T 052 &#xff0c;文末自助获取源码 \color{red}{T052&#xff0c;文末自助获取源码} T052&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…

双向链表专题

双向链表 1. 双向链表的定义和结构2. 双向链表的实现2.1 结构声明2.2 双向链表的初始化2.3 双向链表的打印2.4 尾插2.5 头插2.6 在指定位置之前插入2.7 在指定位置之后插入数据2.8 尾删2.9 头删2.10 删除指定位置的节点2.11 查找2.12 链表的销毁 3. 双向链表的细节 &#x1f52…

发票真伪查验方式-python数电票批量查验接口、发票ocr文字识别提取

在当今的商业环境中&#xff0c;确保交易的安全性和透明度是每个企业追求的目标。随着电子商务的迅猛发展&#xff0c;发票管理成为了企业财务管理中不可或缺的一环。面对海量的电子发票&#xff0c;企业财务也无需惊慌&#xff0c;翔云发票查验API接口&#xff0c;可以为企业提…

html+js+css实现拖拽式便签留言

前些日子在网上冲浪时&#xff0c;看到一个便签式留言墙&#xff0c;让人耳目一新。心想这个看着不错&#xff0c;额想要。于是便开始搜寻是否有相应开源插件&#xff0c;想将其引入自己的博客中。但是搜寻了一圈&#xff0c;都没有符合预期的,要么功能不符合。有的功能符合&am…

初识网络编程TCP/IP

目录 前言相关名词解释应用层协议——HTTP传输层协议socketTCP帧头格式三次握手、四次挥手 UDPTCP的socket实现 参考博文 前言 刚碰到网络编程&#xff0c;会出现一堆协议、概念、这层次那技术的&#xff0c;头都大了&#xff0c;还是得总结总结…… 相关名词解释 ✨✨网络…

Vue2进阶之Vue3高级用法

Vue3高级用法 响应式Vue2&#xff1a;Object.definePropertyObject.definePropertythis.$set设置响应式 Vue3&#xff1a;Proxy composition APIVue2 option API和Vue3 compositionAPIreactive和shallowReactivereadonly效果toRefs效果 生命周期main.jsindex.htmlLifeCycle.vue…

树叶分类竞赛(Baseline)以及kaggle的GPU使用

树叶分类竞赛(Baseline)-kaggle的GPU使用 文章目录 树叶分类竞赛(Baseline)-kaggle的GPU使用竞赛的步骤代码实现创建自定义dataset定义data_loader模型定义超参数训练模型预测和保存结果 kaggle使用 竞赛的步骤 本文来自于Neko Kiku提供的Baseline&#xff0c;感谢大佬提供代码…

与C语言的旅程之分支与循环(2)

与C语言的旅程之分支与循环 C语⾔是结构化的程序设计语⾔&#xff0c;这⾥的结构指的是顺序结构、选择结构、循环结构&#xff0c; 目录 与C语言的旅程之分支与循环 1. if语句 1.1 if ​编辑1.2 else 1.3 分⽀中包含多条语句 1.4 嵌套if 1.5 悬空else问题 2. 关系操作符…

springBoot 自动配置与starter

目录 一、自动配置 Springboot实现自动配置的核心机制 Conditional的作用是什么&#xff1f; 如何自定义自动配置&#xff1f; 步骤 例子分析 自动配置的优先级 如何禁用特定的自动配置&#xff1f; 二、starter 如何理解Spring Boot中的starter&#xff1f; 如何自…