day 58 | 拓扑排序和 dijkstra

拓扑排序

  • bfs
  • 初始化,找到所有入度为 0 的节点加入 que
  • 遍历 que, 每取出一个节点,就把他对应 start 边的 end 节点的入度度数-1
  • 如果有对应度数为 0 的相邻点则加入 que

dijkstra 排序

  • 维持一个点集合
  • 往集合加入 1 节点,并且更新 mindist 数组(表示的是该节点到 1 的最短距离)
  • 遍历所有节点,得到离当前结合最近的点 cur
  • 更新和 cur 相邻的,且不在集合内的 mindist 距离
  • mindist[i]=min(mindist[cur] + g[cur][i],mindist[i])

然后是关于是否可以有负数的问题

  • Prime 维护的是一个 到集合的最短距离,所以可以有负数
  • dijkstra维护的事节点到 start 的最短距离,(不能保证一直加最小数就是最短路径,可能中途遍历过程中就能找到最短路径了)
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-03 17:30
点赞 评论 收藏
分享
兄弟们,实习都是在接各种api,该怎么包装简历
仁者伍敌:感觉我自己做小项目也是各种api啊,我要怎么包装简历
点赞 评论 收藏
分享
风中翠竹:真的真的真的没有kpi。。。面试官是没有任何kpi的,捞是真的想试试看这个行不行,碰碰运气,或者是面试官比较闲现在,没事捞个人看看。kpi算HR那边,但是只有你入职了,kpi才作数,面试是没有的。
双非有机会进大厂吗
点赞 评论 收藏
分享
点赞 评论 收藏
分享
07-01 17:14
中北大学 Java
兄弟们是真是假
牛客46374834...:我在boss上投java岗从来没成功过
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务