国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > Python基础教程 > Python Dijkstra算法是什么

Python Dijkstra算法是什么

Python Dijkstra算法

头像

小妮浅浅

2021-09-08 09:15:184197浏览 · 0收藏 · 0评论

说明

1、Dijkstra算法是经典的最短路径算法,它是数据结构、图论、运筹学等基础教学算法。

令人感兴趣的是,Dijkstra算法通常是按照贪心方法来描述的,而在运筹学中把Dijkstra算法视为动态规划。

2、Dijkstra算法从起始点开始,采用贪心法。

每一遍遍历一个距离起点最近且没有到达的邻接顶点,层层展开,直至结束。

Dijkstra算法求解加权最短路径的最优解,其时间复杂度为O^2。当边数远小于n^2时,复杂度可以降低,并以堆结构的形式将其降低为O`(m+n)log(n))。

Dijkstar算法无法处理负权边,这是由贪心法的选择规则所决定的。

实例

def dijstra(adj, src, dst, n):
    dist = [Inf] * n
    dist[src] = 0
    book = [0] * n # 记录已经确定的顶点
    # 每次找到起点到该点的最短途径
    u = src
    for _ in range(n-1):    # 找n-1次
        book[u] = 1 # 已经确定
        # 更新距离并记录最小距离的结点
        next_u, minVal = None, float('inf')
        for v in range(n):    # w
            w = adj[u][v]
            if w == Inf:    # 结点u和v之间没有边
                continue
            if not book[v] and dist[u] + w < dist[v]: # 判断结点是否已经确定了,
                dist[v] = dist[u] + w
                if dist[v] < minVal:
                    next_u, minVal = v, dist[v]
        # 开始下一轮遍历
        u = next_u
    print(dist)
return dist[dst]

以上就是Python Dijkstra算法的介绍,希望对大家有所帮助。更多Python学习指路:python基础教程

本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

与少妇在车里做爰| 女性LOGO大全图片| 老师穿白色双开真丝旗袍怎么穿| 黑色蕾丝女装大长腿| 都市枭雄| 蜜桃2| 久久精品国产亚洲AV四虎百花| 售票员用B验票小镇免费阅读| 白带内裤拉丝尿液| 《淫海春潮》电影| 真人老太太实战镖客视频| 朝国年经的继3| 《杨梅熟了》 BY肉馅小水饺讲的.. | 黑科网今日黑科独家爆料| 在浴室和男朋友站着做好爽| 小叔子看亲嫂2什么时候开播| 无人区免费观看高清电视剧| 看老公玩自己闺蜜| 免费的行情网站WWW下载大全| 《互换人妻HD中字》| 小俊在雪姨身上耕耘小说免费阅读| 下面的小嘴又饿了| 《女仆教育》动漫第一季| 在电影院被强了好爽H| 太硬了…轻点…嗯嗯灬小俊| 姐姐动漫在线观看动浸第8集| 特种兵营里被轮流的小说叫什么| 《我的漂亮老师2》| 丁香花影院免费观看电视剧哈尔滨 | 适合深夜看的脸红的小说| 夜市| 宝宝今晚不带小雨伞| 一品国精和二品国精的文化意义| 老翁玩嫩媳| 老公不在家憋不住了该怎么办| 黑人空乘伦理5| 男生把小困困放到女生困里视频| 丁香五月色情久久久久| 小布什传| 野花韩国视频中文免费观看7| EXO妈妈MV高清视频播放