图 - 单源最短路径

news/2025/2/21 22:37:11
#!/usr/bin/env python3.3
# -*- coding:utf-8 -*-
# Copyright 2013

'''
单源最短路径:
1)bellman_ford算法:将所有的边进行|V|-1次循环,每次循环对所有边进行松弛操作
2)dijkstra算法:将V-S中顶点按最短路径递增的次序加入到S中,并对邻接边进行松弛操作
'''

def bellman_ford(graph, graph_size, s):
    low_weight = [w for w in graph[0]]
    low_weight[s] = 0
    for repeat in range(1, graph_size):
        for u in range(graph_size):
            for v in range(graph_size):
                # 对每条边进行松弛操作
                if low_weight[u] is not None and graph[u][v] is not None:
                    if low_weight[v] is None or low_weight[v] > low_weight[u] + graph[u][v]:
                        low_weight[v] = low_weight[u] + graph[u][v]
    return low_weight

def dijkstra(graph, graph_size, s):
    visit_set = {s}
    low_weight = [w for w in graph[s]]
    low_weight[s] = 0
    for repeat in range(1, graph_size):
        # 查找最小权值的顶点
        k = None
        for v in range(graph_size):
            if v not in visit_set and low_weight[v] is not None:
                if k is None or low_weight[v] < low_weight[k]:
                    k = v
        # 对邻接边进行松弛操作
        for v in range(graph_size):
            if v not in visit_set and graph[k][v] is not None:
                if low_weight[v] is None or low_weight[v] > low_weight[k] +  graph[k][v]:
                    low_weight[v] = low_weight[k] +  graph[k][v]
        visit_set.add(k)
    return low_weight

 

转载于:https://www.cnblogs.com/lianghuiwen/archive/2013/04/30/3051500.html


http://www.niftyadmin.cn/n/1706690.html

相关文章

雅虎微软交易局中局:巴茨开始绝望主妇式攻击

本文发表于 2009-10-21 微软CEO史蒂夫鲍尔默&#xff08;Steve Ballmer&#xff09;有理由感到高兴据记者查阅美国互联网流量跟踪分析公司ComScore最新出炉的一份搜索市场研究报告&#xff1a;微软于4个月前推出的搜索引擎品牌Bing的市场份额正在缓慢上升。 Of course&#x…

调查显示:公众认为IT等行业最有盈利前景

本文发表于 2009-10-26 15:58 来源&#xff1a;中国经营报 在全球以及中国经济复苏前&#xff0c;很多企业都在趁机抓管理、招聘或者有准备的裁员&#xff0c;就是为了在经济上行期轻装上阵。但是&#xff0c;经历了经济环境洗礼的市场对一些主要行业的发展持什么态度&#x…

华山论剑

http://news.sohu.com/20130430/n374449511.shtml转载于:https://www.cnblogs.com/jvava/archive/2013/04/30/3051929.html

调查显示美国人不放心云存储个人数据

本文发表于 2009-10-26 15:53 来源&#xff1a;新浪科技 11/2/2009 11:19:36 AM 北京时间10月25日上午消息&#xff0c;据国外媒体报道&#xff0c;网络安全咨询公司Unisys公布的美国安全指数调查显示&#xff0c;美国人并不放心将他们的秘密数据进行云存储&#xff0c;担心…

Android ProGuard

优化&#xff08;Optimizing&#xff09;应用程序APK通常是Android应用开发的最后一步。Google推荐使用ProGuard开源工具来优化APK。这篇文章我们将探索使用ProGuard的优势、问题以及给出一个优化你的APK的合适的配置文件。优势 减少Apk的大小 提升Apk的性能 混淆缺陷 潜在…

WordPress Easy AdSense Lite插件跨站请求伪造漏洞

漏洞名称&#xff1a;WordPress Easy AdSense Lite插件跨站请求伪造漏洞CNNVD编号&#xff1a;CNNVD-201305-027发布时间&#xff1a;2013-05-03更新时间&#xff1a;2013-05-03危害等级&#xff1a; 漏洞类型&#xff1a;跨站请求伪造威胁类型&#xff1a;远程CVE编号&#x…

评论:大型手机厂商转投Android阵营

本文发表于 2009-10-26 15:49 来源&#xff1a;新浪科技 11/2/2009 11:23:30 AM 导语&#xff1a;博客作者索尔汉塞尔(Saul Hansell)周一在《纽约时报》网站上撰文称&#xff0c;大型手机厂商正在转向使用谷歌Android操作系统&#xff0c;微软Windows Mobile则正在陷落&…

伊坎致雅虎董事会辞职信全文

本文发表于 2009-10-26 09:27 来源&#xff1a;新浪科技 11/2/2009 11:33:02 AM 北京时间10月24日消息&#xff0c;据国外媒体报道&#xff0c;亿万富翁投资者卡尔伊坎(Carl Icahn)周五致函雅虎董事会&#xff0c;宣布辞去董事职位。伊坎在信中表示&#xff0c;他认为目前雅…