![](https://img-blog.csdnimg.cn/b7718052166a4f7ea87ae59b32d3675f.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
基础算法
文章平均质量分 80
排序
二分
高精度
前缀和与差分
双指针算法
位运算
离散化
区间合并
くらんゆうき
这个作者很懒,什么都没留下…
展开
-
《动态规划 ---- 线性规划一》----- 动态规划的基本概念,线性动态规划-->背包问题
对于一些算法问题,我们在选择的过程中可能会涉及到很多的路径,如果我们尝试去直接向下的搜索,如果路径非常多,直接爆掉。这样我们就需要一种算法思想来优化这个寻找路径的过程,这里设计到了两个思想:问题解决无后延性重叠子问题我们把一个大的问题转化成一些小的问题的,我们每次都进行分步的来看,选择分布出来的最优化的结构,或者是对当前的状态或者是对当前的相关的内容。首先是线性DP的基础的定义,线性DP就是一种最为简单的DP的操作,我们需要总结一些操作来完成对DP的学习。原创 2023-10-17 19:37:44 · 277 阅读 · 0 评论 -
【广度优先遍历】|BFS|树和图的遍历思想|最短路的简单思想
广度优先遍历的算法实现是相对比较简单的,首先我们能知道他的遍历思路,广度优先的遍历思路是一群老鼠的思想,从一个点开始用很多的老鼠,这些老鼠很懒,每天每只老鼠都只会走一步,当然在我们在模拟这个出入的时候,使用队列来进行模拟,这种模拟实际上就是队列的出入栈的操作。广度优先遍历是没有重复的操作的,每个点最多就会被遍历到一次,遍历模拟的方式就是把每次遍历得到的下层结点都存储到一个队列中,这个队列会只有完成上一层的操作才会进行下一层的递归操作。原创 2023-07-22 08:28:46 · 72 阅读 · 0 评论 -
【深度优先搜索】|DFS|遍历算法|边权为1的深度遍历思想|解决常见的图和树的问题
深度优先遍历思想实际上就是一种常见的完全遍历思想,我们理解他的方法就是使用老鼠的思想,每次出现结点的时候我们就嵌套一层让他向下面进行代码的流程,所谓的,当这个算法在平行的结点的运动时候说明他已经完成了下楼的操作,已经返回来进行下一个操作,我们叫做,这么来理解这个,实际上这个也可以看作为一个大型的指针来回遍历的操作。原创 2023-07-21 20:04:26 · 76 阅读 · 1 评论 -
【二分】|二分答案,二分最使用方式,也是最实用的一种使用方式
二分,我们常用的就是用它来查找某些东西,但是我们也可使用这种简单的算法来完成,一些答案的检索,二分答案实际上就是一种遍历的方法,你可以理解为他是一种时间复杂度位的一种遍历方式,首先我们道的是他也是使用一个范围的数据进行遍历,也就是说在使用这个算法的时候,我们要首先的知道这个答案的数据范围,然后我们要写一个检验方式,来完成这个数据的检验操作,只要整个算法的时间复杂度不超过就能正常运行,一般数据情况下。原创 2023-07-15 12:05:32 · 331 阅读 · 1 评论 -
【前缀和】【差分】|一维前缀和|二维前缀和|一维差分|二维差分|详解
前缀和是一种简单的思想,首先我们以一维前缀和为例子,他被用来对一段区间的快速求解,当我们要求解一段区间的时候,我们很可能要多次遍历,从而使时间复杂度达到,但是当这个算法是要查询次的时候,我们时间复杂度就会加速上升,那么我们优美有一种简单的方法降低一下这个时间复杂度呢?我们在求解在区间这个区间的时候,我们可以使用朴素算法中使用这个思路来完成对这个区间的朴素求解,现在我们要优化一下这个过程,我们可以在读入数组的时候,也创建一个的数组,我们使用这个数组工具和这个思路来完成这个区间的求解。原创 2023-07-14 13:42:09 · 296 阅读 · 1 评论 -
【高精度算法】|基础算法|高精度下的加减乘除,板子算法。|整数型高精度算法|详细代码
所谓的高精度算法其实解决的就是简单的加减乘除运算,但是为什么我们称他们为一类算法呢,在C语言中不是有相关的运算符可以进行运算吗?这需要我们知道一点,在C语言中的运算固然是可以进行的,但是他是有一定的限制条件存在的,我们知道在进行运算的时候我们要借助相关的变量来存储数据来进行运算,变量是最大的整数性变量,他能够开到的最大值也不过,如果我们要进行更大数值的运算我们就无法进行处理了,所以我们提出了高精度算法。高精度指的不仅仅是向下(小数点向右)的精度,而且还有向上(小数点向左)的精度。原创 2023-07-13 14:49:17 · 80 阅读 · 1 评论 -
【排序】|归并排序|桶排序|冒泡排序|堆排序|算法详解+分析
这个排序涉及到一些数据结构方面的知识,初学者可以直接跳过,等数据结构小成之后回来再看也不迟.本小节需要掌握堆这类数据结构的基础知识和一些二叉树的基础知识.原创 2023-07-11 13:22:46 · 147 阅读 · 0 评论 -
【快速排序】|C++代码实现|由简到繁,简单入门
当我们想到排序,并且我们只思考基础的的手法,就是使用循环遍历的方法来寻找最合适的插入的位置,需要我们注意的是这是一个复杂度的算法,这样的话排序的数据范围(数据的多少)就会相对的比较小,在这个时候我们就要想办法去优化这个算法,从而使这个排序算法在更广泛的数据范围内能实现.同时, 我们想到了,但是桶排序在数据范围(数据的大小)上受到极大的影响,我们无法实现在数据值比较大的情况下完成这个排序操作(一旦数据范围达到了10以上就可能TLE)当然我们还有另一种办法,简单的。原创 2023-07-10 21:27:13 · 371 阅读 · 1 评论