随笔分类 -  Arithmetic

摘要:![image](https://img2023.cnblogs.com/blog/2039513/202310/2039513-20231013134552700-1511181656.png) ![image](https://img2023.cnblogs.com/blog/2039513/202310/2039513-20231013134604028-1838852552.png) ![ 阅读全文
posted @ 2023-10-13 13:47 Yu_tiann 阅读(46) 评论(0) 推荐(0)
摘要:Dijkstar算法思想: 较抽象: 设G=(V,E)是一个带权有向图,把图中顶点集合V分成两组,第一组为已求出最短路径的顶点集合(用S表示,初始时S中只有一个源点,以后每求得一条最短路径 , 就将加入到集合S中,直到全部顶点都加入到S中,算法就结束了),第二组为其余未确定最短路径的顶点集合(用U表 阅读全文
posted @ 2021-11-26 00:05 Yu_tiann 阅读(391) 评论(0) 推荐(0)
摘要:几种排序算法的联系 希尔排序相当于直接插入排序的升级,同属于插入排序类; 堆排序相当于简单选择排序的升级,同属于选择排序类; 快速排序是最慢的冒泡排序的升级,属于交换排序类; 快速排序的基本思想 快速排序是通过不断比较和移动交换来实现排序的,只不过它的实现增大了记录的比较和移动的距离,将关键字较大的 阅读全文
posted @ 2021-08-17 18:07 Yu_tiann 阅读(569) 评论(0) 推荐(0)
摘要:归并排序算法简介 归并排序就是利用归并的思想实现的排序方法 假设初始序列含有n个记录,看成是n个有序的子序列,每个子序列的长度为1,然后两两归并,得到 |n/2|(|x|表示不小于x的最小整数)个长度为2或1的有序子序列;再两两归并,如此重复,直至得到一个长度为n的有序序列为止,这种排序方法称为2路 阅读全文
posted @ 2021-08-17 14:46 Yu_tiann 阅读(887) 评论(0) 推荐(0)
摘要:堆排序算法用到的大顶堆/小顶堆 以使用大顶堆的堆排序算法为例,其实堆排序算法的原理就是不断将剩余的未完成排序的数据构造成一个大顶堆,然后每次将大顶堆的堆顶元素(也就是最大的元素)取出,如此循环即完成了堆排序。 大顶堆:每个结点的值都大于或等于其左右孩子结点的值,如下图所示,就是一个大顶堆: 堆排序算 阅读全文
posted @ 2021-08-17 00:29 Yu_tiann 阅读(271) 评论(0) 推荐(0)
摘要:二叉排序树删除操作的几种情况 要删除的结点在二叉排序树中是叶子结点: 则可以直接删除,因为删除它们对于整棵树来说,其他节点的结构并不受到影响 要删除的结点只有左子树或者右子树: 删除结点后,将它的左子树或右子树移动到删除结点的位置即可(子承父业) 要删除的结点既有左子树又有右子树: 简单的想法:让删 阅读全文
posted @ 2021-08-13 19:46 Yu_tiann 阅读(4339) 评论(0) 推荐(1)
摘要:关键路径VS最短路径 关键路径算法一般会在最短路径算法的后面进行讲解。 这就需要我们首先区分出关键路径算法和最短路径算法在前提上的不同: 最短路径算法是找尽可能短的路来保证路径长度最小,你只需要找出一条最短的路就行。 但是在关键路径里,一个顶点是有多个前提的,只有前提的路径都走完,才能发生该顶点的事 阅读全文
posted @ 2021-08-11 18:18 Yu_tiann 阅读(1372) 评论(1) 推荐(0)
摘要:1、前言 首先,我们需要大致理解Kmp算法的整体思想以及大致原理,同时需要学会手算next数组的方法。这些都是很简单并且容易理解的,本文不再赘述,如对以上内容仍有疑问,推荐一个B站视频讲解:BV1jb411V78H 另外本文的所有图片出处:B站视频 BV16X4y137qw 2、代码 以下是本文讲要 阅读全文
posted @ 2021-08-07 16:15 Yu_tiann 阅读(1666) 评论(0) 推荐(0)
摘要:背景:在严蔚敏老师的那本的数据结构的书中,只给出了归并排序的递归实现代码,且注释说:递归形式的算法在形式上较简洁,但实用性差。因此这里参考小甲鱼数据结构教学视频中的代码,进行归并排序迭代实现方式的分析和理解。(小甲鱼的视频基本参考《大话数据结构》) 算法理解: 归并排序的递归方式很好理解(见严蔚敏数 阅读全文
posted @ 2020-03-16 18:00 Yu_tiann 阅读(1243) 评论(0) 推荐(0)
摘要:背景:本文是在小甲鱼数据结构教学视频中的代码的基础上,添加详细注释而完成的。该段代码并不完整,仅摘录了核心算法部分,结合自己的思考,谈谈理解。 关键路径: 即决定一项工程的完成时间的路径。 如下图所示,是一辆汽车的生产流程,其中外壳、发动机、轮子等的生产过程都是可以并行进行的,但是发送机生产需要的时 阅读全文
posted @ 2020-03-13 00:57 Yu_tiann 阅读(466) 评论(0) 推荐(0)
摘要:背景:本文是在小甲鱼数据结构教学视频中的代码的基础上,添加详细注释而完成的。该段代码并不完整,仅摘录了核心算法部分,结合自己的思考,谈谈理解。 Floyd算法理解: Floyd算法其实非常的直观和简洁,而且可以解算出从以图的任何一个顶点作为起点和终点的最短路径(相对于Dijkstar算法的优势),这 阅读全文
posted @ 2020-03-12 19:52 Yu_tiann 阅读(213) 评论(0) 推荐(0)
摘要:背景:本文是在小甲鱼数据结构教学视频中的代码的基础上,添加详细注释而完成的。该段代码并不完整,仅摘录了核心算法部分,结合自己的思考,谈谈理解。 Prim算法理解: 如图(摘录自小甲鱼教学视频中的图片),是一个带有权值的连通网: 根据上图可以列写出该连通网的邻接表,为了方便直观的理解:(邻接表初始化需 阅读全文
posted @ 2020-03-12 13:02 Yu_tiann 阅读(462) 评论(0) 推荐(0)
摘要:背景:本文是在小甲鱼数据结构教学视频中的代码的基础上,添加详细注释而完成的。该段代码并不完整,仅摘录了核心算法部分,结合自己的思考,谈谈理解。 Prim算法理解: 如图(摘录自小甲鱼教学视频中的图片),是一个带有权值的连通网。 根据上图可以列写出该连通网的邻接矩阵,为了方便直观的理解: 权值 V0 阅读全文
posted @ 2020-03-11 21:45 Yu_tiann 阅读(319) 评论(0) 推荐(0)
摘要:背景:在学习数据结构时,关于图的遍历的一个经典问题,这里采用递归的方式实现该算法,其中包含回溯法和图的深度优先遍历的思想,在参考各种递归实现该算法的基础上,完成了一版带有自己理解的详细注释版代码 开发环境:Code::Blocks 编译器:GCC 语言:C 代码:(详细注释) /* 递归+回溯+图深 阅读全文
posted @ 2020-03-11 13:15 Yu_tiann 阅读(931) 评论(0) 推荐(0)