Java Yen算法K最短路实现

Java 写的 Yen 算法代码,蛮适合拿来练手。

图的最短路径算法你早就听说过 Dijkstra,但要找多条路径呢?用 Yen 就对了。项目结构清晰,src里有完整实现,test也带了样例,跑起来比较方便。

K 最短路其实是对Dijkstra 算法的扩展。先找一条最短的,再一点点“挖”出第二、第三……直到第 K 条。蛮适合交通规划、网络路由优化那类要“多方案备选”的场景。

算法思路也不难:一开始用Dijkstra拿到 P0,每次从前一条路径“拐个弯”,换个边重新算,直到凑够 K 条。Yen 的核心就在这个“拐弯”策略和去重逻辑。

代码里的图结构也比较规整,像GraphEdge这类基本类都有,逻辑清晰。不管你是想搞明白算法,还是要用在实际项目里,都是不错的参考。

小提醒:路径多了性能会下滑,要注意算法复杂度。如果你打算扩展图的数据量,记得先做下压力测试。

如果你对图论算法感兴趣,或者正好有路径规划需求,拿来看看还是挺值的。

zip 文件大小:69.68KB