logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

最小生成树(并查集 & Kruskal & Prim)

本文介绍了最小生成树(MST)的基本概念及两种求解算法:Kruskal和Prim。Kruskal算法通过并查集实现,时间复杂度O(mlogm),按边权排序后依次选取不形成环的边。Prim算法从单个节点出发,逐步扩展MST,使用贪心策略选择最小边。文章提供了两种算法的代码模板,并详细解释了并查集的实现原理。这些算法在网络设计、电路布线等需要最小成本连接所有节点的场景中有重要应用。

#算法#图论#c++
[C++] 前缀函数 & KMP算法

本文介绍了KMP字符串匹配算法及其核心组件前缀函数。前缀函数定义为字符串子串的最长相等真前缀和真后缀长度,具有非严格递增性质。文章提供了前缀函数的计算模板和示例分析,并详细解释了KMP算法通过预处理模式串的前缀函数来优化匹配过程,避免不必要的回溯。KMP算法的时间复杂度为O(n+m),包含模式串预处理和主循环匹配两个阶段。文中给出了完整的C++实现代码,展示了如何利用前缀函数高效地查找所有匹配位置

#算法#c++#数据结构
最短路(Floyd & Bellman_Ford &Dijkstra)

本文总结了三种常见的最短路算法:Floyd全源最短路、Bellman-Ford单源最短路和Dijkstra单源最短路。Floyd算法适用于小规模图(n≤500),通过动态规划计算所有点对间的最短路径;Bellman-Ford能处理负权边并检测负权环;Dijkstra是处理无负权边图的高效算法,包括朴素实现和优先队列优化版本。每种算法均给出核心思路和代码模板,其中Floyd和Dijkstra还展示了

#图论#算法#c++
到底了