![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构和算法
文章平均质量分 70
你有按下913的勇气吗
其实没你想的那样,做自己就行
展开
-
单调栈理解
从名字上就听的出来,单调栈中存放的数据应该是有序的,所以单调栈也分为单调递增栈和单调递减栈单调递增栈:单调递增栈就是从栈底到栈顶数据是从大到小单调递减栈:单调递减栈就是从栈底到栈顶数据是从小到大。原创 2023-05-02 17:21:48 · 141 阅读 · 2 评论 -
【无标题】
迪杰特斯拉算法说白了就是一种贪心思想,比如说找到v1与v8之间的最短路径,他不是一下子就求出了v1到v8的最短路径,而是一步步求出他们顶点之间的最短路径,过程都是基于已经求出的最短路径的基础上,求得更远的顶点的最短路径,最终的得到了你最新要的结果。很显然,对这个灯的邻居进行的计算是有效的,而对远离它的那些点的计算基本是无效的。Floyd用到了动态规划的思想:求两点i、j之间的最短距离,可以分为两种情况考虑,即经过图中某个点k的路径和不经过点k的路径,取两者中的最短路径。(1)图中有n个结点,m条边。原创 2023-04-30 09:35:29 · 43 阅读 · 0 评论 -
二叉树遍历算法(递归和非递归)
查找某个节点的父节点和子节点(也包括有没有子节点)很快。只要能满足此条件,就可以把一个普通树转化成二叉树。一个普通树转化成的二叉树一定没有右子树。只有通过先序和中序,或者中序和后序我们。但是通过先序和后序是无法还原原始的二叉树的。通过先序和中序 或者 中序和后序我们可以。连续存储[完全二叉树](只能是这样子存储)把一个普通的树转化成二叉树来存储。才可以唯一的确定的二叉树。设法保证任意一个节点的。先把森林转化成二叉树,在存储二叉树。中序遍历[中间访问根节点]后续遍历[最后访问根节点]先序遍历[先访问根节点]原创 2023-04-02 16:52:17 · 87 阅读 · 0 评论 -
KMP算法(C语言和java版)
大家第一想法可能是暴力循坏,从主串的第一个开始循环,然后和子串进行比较,如果不相同,然后从主串第二位开始循环,又和子串第一位开始比较,显然,这样的方法时间复杂度是极其高的,设主串长度是m,目标串长度为n,那么暴力方法的时间复杂度是O(m*n);还是这个例子,咱们设i指向主串第一位,j指向目标串第第一位,kmp算法就是只向回移动j,而不是i,那么我们先看,当在E的时候二者不相等,那么你就把目标串中C之前的最长前缀移到后缀,就能继续匹配,且看图。那么有没有更简单的方法来达成我们的目标,那就得依靠KMP算法了。原创 2023-03-11 17:38:16 · 109 阅读 · 2 评论 -
快排or快速排序(C语言版和java版,超详细)
快排or快速排序(C语言版和java版,超详细)原创 2023-03-09 19:21:10 · 92 阅读 · 6 评论 -
高精度加法(超详细的大数相加,一看就会)
高精度加法(超详细的大数相加,一看就会)原创 2023-03-08 11:20:01 · 276 阅读 · 6 评论