数据结构--插入排序(C语言实现)_void insertsort(link l)-程序员宅基地

技术标签: 笔记  c语言  数据结构  排序算法  

 需要用到的结构体

struct LNode {
	int Data[MAXSIZE];  //Data为待排序序列数组 
	int Last;  //Last为最后一个元素的数组下标 
};
typedef struct LNode *List;

void InsertionSort(List L);

关于插入排序,是先将要插入的数据提出来,再以这个数据为开始,向前遍历

这里,我们取一个例子来插入排序,假设4,5已排序好

这是比前面所有值都小的情况,那么,另一种情况就是没遍历结束就找到了插入位置(那么我们直接让它跳出循环即可),也就是前一个比后一个小的情况,这时候就不需要交换位置了

所以我们可以写下实现函数

void InsertionSort(List L) {
	int temp = 0;
	//插入n-1次
	for (int i = 1; i <= L->Last; i++) {
		temp = L->Data[i];//保存要插入的数据
		int j = i;
		for (j; j > 0; j--) {
			if (temp < L->Data[j - 1])
				L->Data[j] = L->Data[j - 1];
			//如果不再交换,则找到了插入位置
			else
				break;
		}
		L->Data[j] = temp;
	}
}

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_52360788/article/details/121955592

智能推荐

《量化交易学习指南——基于R语言》第3章 计量分析与小波分析_小波分析r语言-程序员宅基地

文章浏览阅读597次。第3章 计量分析与小波分析 在金融分析中,我们经常应用预测性建模技术来预测目标变量的取值并找出目标变量的驱动因子。本章将讨论不同类型的回归技术以及在R中如何构建预测性的回归模型。我们还讨论如何进行变量选择以及和回归相关的其他问题。本章并不讲述关于回归模型的理论性内容,而是指导用户用R来实现与金融问题相关的回归模型。在金融领域中,回归分析可用于横截面数据的预测。此外,我们也会讨论时间序列数据的频谱..._小波分析r语言

GitChat会员半价最后一天-程序员宅基地

文章浏览阅读1.3k次。成长是技术人的刚需,唯一途径就是学习加实践,GitChat提供了碎片化时代的学习环境,严选课程和Chat,给你最新最好的。会员半价最后2天!买会员,我的达人课和所有Cha..._gitchat会员值得买么

javaDoc注释与帮助说明文档_javadoc注释与帮助文档在哪-程序员宅基地

文章浏览阅读255次。目录javaDoc注释与帮助说明文档注释把注释生成文档的方式javaDoc注释与帮助说明文档在Java开发过程中,保持来好的编码习惯,规范的书写注释,能够架起程序设计者与程序阅读者之间的桥梁,最大限度的提高团队开发合作效率,也是程序代码可维护性的重要环节。注释在java中一共有三种不同的注释,第一种,单行注释,//注释的内容,第二种,多行注释 ,/* …注释内容…* /,第三种 文档注释 ..._javadoc注释与帮助文档在哪

3 计算机组成原理第三章 存储系统 主存简单模型及寻址 半导体寄存器 存储器分类 主存与CPU连接 双口RAM和多模块寄存器_计组 存储芯片的基本结构-程序员宅基地

文章浏览阅读2.1k次,点赞3次,收藏6次。文章目录1 主存简单模型及寻址的概念1.1 主存储器1.1.1 存储器芯片的基本结构1.1.2 寻址2 半导体存储器2.1半导体随机存取存储器2.1.1 DRAM的刷新2.1.2 SRAM的读周期2.1.3 SRAM的写周期2.1.4 RAM-易失性存储器2.1.6 ROM2.1.7 ROM分类3 存储器分类3.1 存储器的性能指标3.2 存储器的层次化结构3.3 存储器概念小结章节知识点总述:1 主存简单模型及寻址的概念1.1 主存储器1.1.1 存储器芯片的基本结构存储矩阵:由大_计组 存储芯片的基本结构

R语言基础图形元素——坐标轴和网格线_r语言网格线-程序员宅基地

文章浏览阅读7.8k次,点赞3次,收藏22次。R语言基础图形元素--坐标轴和网格线简介简介_r语言网格线

01 QT窗口对象与子窗口对象_qt多个子窗口判断是哪个子窗口-程序员宅基地

文章浏览阅读4.6k次。创建QT的“qmake empty project”后, 有个pro文件. 此文件是用于管理工程,记录有哪些头文件,哪些源文件,使用了QT的哪些库, 不是写代码用的。一般情况下,不要修改它. pro文件里需要加上: QT += gui core //表示此工程用到libQt5Gui.so libQt5Core.so 当我们使用一个类时,注意它的帮助说明: qmake: QT +=_qt多个子窗口判断是哪个子窗口

随便推点

app逆向|某酒店app注册参数分析-程序员宅基地

文章浏览阅读1.7k次。前言Android逆向是一个很大很深的话题,我们这个系列探讨的是爬虫工程师日常的逆向需求,比如签名算法啊,post请求中的加密啊,乱七八糟的随机字段等,下面看看我们每次要分析的app。抓..._app fria sign

muduo-学习笔记(一)Timestamp部分_timestamp.h-程序员宅基地

文章浏览阅读370次。Timestamp.h头文件,定义了Timestamp类中的相关函数和变量#ifndef MUDUO_BASE_TIMESTAMP_H //预定义#define MUDUO_BASE_TIMESTAMP_H#include <muduo/base/copyable.h> //头文件 copyable.h是一个空实现,仅为了做标识#include <muduo/base/Types.h> //基本类型的声明#include <boost/operators_timestamp.h

视频监控智能图像识别 yolov5_监控画面yolov5-程序员宅基地

文章浏览阅读886次。视频监控智能图像识别通过yolov5深度学习网络架构对现场画面中人员行为以及着装或者物体的状态变化进行实时分析检测识别。Yolo意思是You Only Look Once,它并没有真正的去掉候选区域,而是创造性的将候选区和目标分类合二为一,看一眼图片就能知道有哪些对象以及它们的位置。Yolo模型采用预定义预测区域的方法来完成目标检测,具体而言是将原始图像划分为 7x7=49 个网格(grid),每个网格允许预测出2个边框(bounding box,包含某个对象的矩形框),总共 49x2=98 个boundi_监控画面yolov5

解决ModuleNotFoundError: No module named ‘serial.tools‘问题_modulenotfounderror: no module named 'serial.tools-程序员宅基地

文章浏览阅读10w+次,点赞13次,收藏13次。pycharm 中已经安装了serial,在调用port_list = list(serial.tools.list_ports.comports())的时候报错:ModuleNotFoundError: No module named 'serial.tools'这时我们不能直接pip install serial.tools,而是应该安装pip install pyserial即可..._modulenotfounderror: no module named 'serial.tools

现代OpenGL系列教程(零)---在Qt/Quick中使用OpenGL_qquickopengl-程序员宅基地

文章浏览阅读7.9k次,点赞8次,收藏48次。【写在前面】首先,想要说明的是,本系列学习教程是根据我自己学习的经历而写,并非完全科普性的,零基础的教程,而且其水平也很受我本身的水平影响,so 如果有不足之处,还请多多指教~~其次,本系列使用 Qt/Quick 来编写所有的opengl程序,所以和原生的opengl有一些区别,当然也不要担心,我会另开一个使用glfw的教程来完成同样的opengl程序。【正文开始】在Qt中使用Op..._qquickopengl

freemarker中对null值的处理_freemarker null-程序员宅基地

文章浏览阅读6.0w次,点赞5次,收藏14次。1. freemarker不支持null。如果值为null会报错,如下:FreeMarker template error (DEBUG mode; use RETHROW in production!):The following has evaluated to null or missing:==> setmeal.sex [in template "mobile_setmeal.ftl" at line 41, column 42]----Tip: It's the ste_freemarker null

推荐文章

热门文章

相关标签