常用的 最短路 算法有三种:Floyd、Dijkstra、Bellman-Ford(SPFA),三种各有优劣。 Floyd 该算法可以计算任意两点之间的最短路径(全源最短路),算法实现简单,只需要三个for循环,但是时间复杂度高,适合数据量小的稠密图。 同时该算法可以计算负权图(不能有负环)。 该算法实现的本质是动态转移.我们使用邻接矩阵来存储更容…
图的存储是 图论 的基础内容,常用的方式有两种:邻接矩阵与邻接表,前者主要借助数组实现,后者可以采用vector或链式前向星实现。在大部分算法中常使用邻接表做存储。本文介绍了以上三种以及边缘列表等四种方式。
二叉树是一种基础数据结构,通常有两种方式实现:数组模拟或者二叉链表。本文将主要介绍二叉链表的实现方式,并简单介绍了它的几种常用的遍历方式。
KMP算法 ,快速模式匹配算法,是在暴力匹配的基础上进行的优化。给定两个串,我们要在主串里找到一个连续的字串和模式串匹配。该算法通过一个next数组进行优化,降低时间复杂度。不同的人对next的定义略有不同,但核心思想都是一样的,掌握KMP算法的思想尤为重要。