
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
Floyd算法是由Robert W. Floyd于1962年提出的动态规划算法,用于求解加权图中任意两点间的最短路径。该算法通过三重循环遍历所有可能的中间节点,不断更新邻接矩阵中的最短路径值,核心状态转移方程为dist[i][j] = min(dist[i][j], dist[i][k] + dist[k][j])。原始实现使用三维数组(空间复杂度O(n³)),优化后采用二维数组(空间复杂度O(n

本文介绍了图的两种基本遍历方法:深度优先遍历(DFS)和广度优先遍历(BFS)。DFS采用递归或栈实现,沿着路径深入到底再回溯;BFS使用队列实现,按层次向外扩展。文章通过代码示例展示了两种算法的实现方式,并以LeetCode 200题岛屿数量为例,分析了DFS和BFS在解决实际问题中的应用。

本文介绍了生成树的概念及其特性,包括连通性、无环性等基本性质。重点讲解了两种求解最小生成树(MST)的经典算法:Kruskal算法通过排序边并利用并查集实现,时间复杂度为O(mlogm);Prim算法采用贪心策略,使用邻接矩阵存储,时间复杂度为O(n²)。文章通过代码示例比较了两种算法的适用场景:Kruskal适合稀疏图,Prim适合稠密图,建议根据实际问题选择合适的算法。

本文介绍了有向无环图(DAG)及其在项目管理中的应用。重点阐述了拓扑排序和关键路径算法:1)拓扑排序通过不断移除入度为0的顶点来确定任务执行顺序;2)关键路径通过计算事件的最早/最晚发生时间(ETV/LTV)和活动的最早/最晚开始时间(ETE/LTE),找出决定项目最短工期的关键活动序列。文中提供了C++实现代码,并分析了算法的时间复杂度:拓扑排序和关键路径均为O(n+m)。这些算法为项目管理中的









