插入排序是最基础的排序算法,原理: 首先1个元素肯定是有序的,所以插入排序从第二个元素开始遍历;内循环首先请求一个空间保存待插入元素,从当前元素向数组起始位置反向遍历;当发现有大于待插入元素的元素,则将此元素向后挪一位,最终将缓冲区的元素放入空白位置。 有图有真相: ...
插入排序是最基础的排序算法,原理: 首先1个元素肯定是有序的,所以插入排序从第二个元素开始遍历;内循环首先请求一个空间保存待插入元素,从当前元素向数组起始位置反向遍历;当发现有大于待插入元素的元素,则将此元素向后挪一位,最终将缓冲区的元素放入空白位置。 有图有真相: ...
什么是线性表? 线性表是n个数据元素的有限序列。根据线性表的显现方式,线性表又分为顺序表(数据元素在内存中的存储空间是连续的)和链表(数据元素在内存中的存储空间是不连续的)。 线性表如何用C语言实现?线性表可以进行哪些操作? 在C语言中,线性表通过结构体的方式来实现。结构体中定义 ...
什么是单链表? 由于顺序表在插入和删除是需要做大量的元素移动工作,而且需要连续的物理空间,因此其缺点是十分明显的,为了解决这一问题,不需要预先分配连续的内存地址空间、插入删除元素不需要做大量移动工作的链表出现了。但解决问题的同时也拥有自己的缺点,即不能随机存取。 在链表中 ...
对于算法思想的理解可以参考下面的这个帖子,十大经典排序算法(动图演示) - 一像素 - 博客园,因为算法的逻辑和数学很像,相应的基础资料一般也能在网上找到,所以,本帖子这谈论一些重要的注意点,其他人讲到的我就不提了,在实现的过程中可能有些代码不是很理解,其他的就相对比较容易多了。 整体 ...
Dijkstra(迪杰斯特拉)算法是典型的最短路径路由算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。 Dijkstra算法 能得出最短路径的最优解,但由于它遍历计算的节点很多,所以效率低。 Dijkstra算法是很有代表性的最短 ...
btree.h //实现对order序(阶)的B-TREE结构基本操作的封装。 //查找:search,插入:insert,删除:remove。 //创建:create,销毁:destory,打印:print。 #ifndef BTREE_H #define BTREE_H ...
蚁群算法(ant colony optimization, ACO),又称蚂蚁算法,是一种用来在图中寻找优化路径的机率型算法。它由Marco Dorigo于1992年在他的博士论文中提出,其灵感来源于蚂蚁在寻找食物过程中发现路径的行为。蚁群算法是一种模拟进化算法,初步的研究表明该算法具有许多优良 ...
这篇博客中出现的问题已经修改:https://blog.csdn.net/ac_hexin/article/details/116781200 C语言实现九大排序算法 直接插入排序 折半插入排序 希尔排序 冒泡排序 快速排序 直接选择 ...