摘要:
前言 kmp 是很早之前看的算法,现在又重新看了一下,感觉这次的理解更深了。 kmp 算法是一个非常精妙的算法,他巧妙的避免了重复的遍历值。 原理 KMP算法的核心是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。具体实现就是通过一个next()函数实现,函数本身包含了模式 阅读全文
posted @ 2022-01-13 17:12
度一川
阅读(205)
评论(0)
推荐(0)
摘要:
原理 关键路径是指设计中从输入到输出经过的延时最长的逻辑路径。优化关键路径是一种提高设计工作速度的有效方法。一般地,从输入到输出的延时取决于信号所经过的延时最大路径,而与其他延时小的路径无关。 理解 关键路径就是从起始点到终点需要花费时间最多的路径 关键路径定义 这里写的是一些关于关键路径的定义 v 阅读全文
posted @ 2022-01-11 23:54
度一川
阅读(499)
评论(0)
推荐(0)
摘要:
定义 对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列。 拓扑排序针对的是有向图 不可以有环 可以用一定的规则进行遍历整个图(遍历所有入度为0的点) 代码 拓扑排序的代码其实很简单。 // 得到入度 public int ge 阅读全文
posted @ 2022-01-10 16:01
度一川
阅读(82)
评论(0)
推荐(0)
摘要:
Floyd算法和Dijkstra算法都是最短路径算法。 其中Dijkstra算法一次只能求出一个点的最短路径。 所有点最短路径用Floyd,另外,Floyd可以处理带负边的图。 原理 其实其原理很简单,就是将每一个点都做一次中转,如果经过中转,路径变短那么我们就保存路径和路径长度。 public v 阅读全文
posted @ 2022-01-09 20:14
度一川
阅读(349)
评论(0)
推荐(0)
摘要:
含义 邻接多重表是无向图的一种存储方式。邻接多重表是邻接表的改进,它把边的两个顶点存放在边表结点中,所有依附于同一个顶点的边串联在同一链表中,由于每条边依附于两个顶点,则每个边表结点同时链接在两个链表中。 目的 解决邻接表存储无向图时同一条边要存储两次的问题。 代码 import java.util 阅读全文
posted @ 2022-01-06 17:01
度一川
阅读(392)
评论(0)
推荐(0)
摘要:
概念 十字链表(Orthogonal List)是有向图的另一种链式存储结构。该结构可以看成是将有向图的邻接表(出度)和逆邻接表(入度)结合起来得到的。用十字链表来存储有向图,可以达到高效的存取效果。 简单的说,十字链表是在邻接表的基础上增加了入度的信息。 例子 其邻接表是 逆邻接表是 那么怎么合并 阅读全文
posted @ 2022-01-06 13:30
度一川
阅读(200)
评论(0)
推荐(0)
摘要:
图的遍历与树的遍历是一样的,这里我就不详细的讲了。 import java.util.LinkedList; import java.util.Queue; import java.util.Stack; public class Graph { int[][] graph; public Grap 阅读全文
posted @ 2022-01-05 16:27
度一川
阅读(67)
评论(0)
推荐(0)
浙公网安备 33010602011771号