当前位置: 首页 > news >正文

考研要求掌握的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.lryc.cn/news/476991.html

相关文章:

  • mybatis源码解析-sql执行流程
  • Golang | Leetcode Golang题解之第538题把二叉搜索树转换为累加树
  • 【linux】HTTPS 协议原理
  • 安利一款开源企业级的报表系统SpringReport
  • 数据安全-接口数据混合加密笔记
  • JeecgBoot入门
  • 用 Vue.js 打造炫酷的动态数字画廊:展示学生作品的创意之旅
  • 【YOLO学习】YOLOv8改进举例
  • 文心一言 VS 讯飞星火 VS chatgpt (383)-- 算法导论24.5 3题
  • 【AIGC】如何通过ChatGPT轻松制作个性化GPTs应用
  • gulp入门教程2:gulp发展历史
  • 【实验八】前馈神经网络(4)优化问题
  • 【深度学习】论文笔记:空间变换网络(Spatial Transformer Networks)
  • Charles抓包_Android
  • 【MATLAB源码-第204期】基于matlab的语音降噪算法对比仿真,谱减法、维纳滤波法、自适应滤波法;参数可调。
  • Scala的包及其导入
  • deepfm模型实现招聘职位推荐算法
  • 编程之路:蓝桥杯备赛指南
  • Android 15 在状态栏时间中显示秒数
  • Flutter 鸿蒙next版本:自定义对话框与表单验证的动态反馈与错误处理
  • Unreal Engine5中使用 Lyra框架
  • Spring Security-02-Spring Security认证方式-HTTP基本认证、Form表单认证、HTTP摘要认证、前后端分离安全处理方案
  • 【scikit-learn 1.2版本后】sklearn.datasets中load_boston报错 使用 fetch_openml 函数来加载波士顿房价
  • vxe-table v4.8+ 与 v3.10+ 导出 xlsx、支持导出合并、设置样式、宽高、边框、字体、背景、超链接、图片的详细介绍,一篇就够了
  • 江协科技STM32学习- P36 SPI通信外设
  • 【大数据】ClickHouse常见的表引擎及建表语法
  • explain执行计划分析 ref_
  • 网络学习/复习4传输层
  • Notepad++ 更改字体大小和颜色
  • 基于SSM+小程序的宿舍管理系统(宿舍1)