韩漫免费漫画在线观看方法,《好好疼爱里面》免费看,年轻漂亮的女士护士内衣,妈妈醉酒后把我当爸爸电视剧

文章 > 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电脑。

关注

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

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

美国巜性来潮喷2| 我穿水K被同桌C出水了H漫画| 《厨房激战5》完整版在线观看| 扒开内裤边吃奶XXOO外国网站| 男生把小困困放到女生困里视频| 免费观看已满十八岁电视剧75B..| 妈妈你真棒里面的插曲叫什么| 伦理《少妇的滋味》完整版| 芒果浏览器| 蜜桃| 金钟国| 《高压监狱3》法国版正版| 求片| 理伦片丰满妓女院| 扒开粉嫩小滨白浆20P| 公翁挺进小玲的小流| 成都私人情侣免费看电视剧| 第9节 妈妈女儿齐上阵| 万能浏览器| 美国伦理性淫梦| 美女| 小洞流口水了 是不是饿了| 欧美大妈LOGO大全| 扌桑辶鬲的照片| 真爱禁区电视剧免费观看全集| 欧美寡妇性猛交XXX| 《妈妈让我戴上避孕套》歌词| 爷爷的鸡又黑又长下一句怎么接| 《尼姑庵春梦》| 欧美大尺寸SUV的未来发展趋势| 人犬兽人在线观看免费完整| 摸摸大扔子是讽刺人还是夸人| 日本大片又大又好看的PPT| 《黏糊糊的你》动漫免费观看 | 《父承子液》笔趣阁免费阅读| 妈妈你真棒里面的插曲叫什么 | 巨茎挺进李淑芬的体内视频| 美臀| 憋尿白丝小肚子凸起高冷知乎| 他扒开我小流添我三男一女视频| 《尼姑庵春梦》