最短路径 Dijkstra 算法为什么边上的权值非负阿?

问个问题 自己没搞懂 dijkstra 算法就是 求单源最短路径的那个算法 嘿嘿 牛人给个解答阿

Dijkstra算法当中将节点分为已求得最短路径的集合(记为S)和未确定最短路径的个集合(记为U),归入S集合的节点的最短路径及其长度不再变更,如果边上的权值允许为负值,那么有可能出现当与S内某点(记为a)以负边相连的点(记为b)确定其最短路径时,它的最短路径长度加上这条负边的权值结果小于a原先确定的最短路径长度,而此时a在Dijkstra算法下是无法更新的,由此便可能得不到正确的结果。求带负权值边的单源最短路径可以用贝尔曼-福特算法。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-22
规定的吧 权值一般都是正数
第2个回答  2013-11-22
可能楼上不知道吧 我考的学校 出了这么一道题 赫赫