Java 最短路径算法 如何实现有向 任意两点的最短路径

万笑爽 2015-06-29 05:46:48
一个物流方面的需求, 通过两点之间的最少运费来确定线路;

举例如下: 北京 - 》 上海 - 》 武汉

可以通过 北京 -> 上海 -> 杭州 - 武汉

也可以通过 北京 - 》 长沙 - 》 武汉 也就是通过两点之间的最短运费来确定我们最终共使用哪条运输线路;

这里面是需要区分有向和无向的 ,比如 北京 -> 上海 -> 杭州 - 武汉 上海到杭州 的运输费用 和 杭州到上海的运输费用是可以不一样的; 最短路径算法使用floyd过程中 网上找的一段代码,结果发现并没有区分方向;
上海- 北京 10元
北京-上海 12 元

但是我们目前是希望 北京 -> 上海 -> 杭州 - 武汉 也就是希望北京-上海这条路线 但是最短路径算法会直接忽略方向

也就是选择运费短的那个 。

想问下 这个需求该如何入手呢 在网上没找到同时满足 有向 任意两点 这两个条件的最短路径算法;





...全文
905 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
万笑爽 2015-06-30
  • 打赏
  • 举报
回复
引用 4 楼 afgasdg 的回复:
你这个是有向图最短路径算法,这个有很多现成的算法,你可以参考下,我这里有个无向图算法,你改改应该就能用了http://m.blog.csdn.net/blog/afgasdg/6040735
有向图比无向图复杂多了 现在要找到既有方向 又区分任意两点的例子
java爱好者 2015-06-29
  • 打赏
  • 举报
回复
你这个是有向图最短路径算法,这个有很多现成的算法,你可以参考下,我这里有个无向图算法,你改改应该就能用了http://m.blog.csdn.net/blog/afgasdg/6040735
万笑爽 2015-06-29
  • 打赏
  • 举报
回复
引用 2 楼 Inhibitory 的回复:
Floyd算法,数据结构的书上都有
这个Floyd算法目前我可以实现 任意两点之间计算最短距离 但是没有找到区分方向的例子 就是如果北京-》上海 10块钱 上海到北京 8块钱 我原来路线是从北京到上海的 它还是会选择最短路径 从上海到北京
Inhibitory 2015-06-29
  • 打赏
  • 举报
回复
Floyd算法,数据结构的书上都有
lan125709702 2015-06-29
  • 打赏
  • 举报
回复
johnson算法

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧