笔趣阁 > 科幻小说 > 编程之战 > 章节目录 第一百五五章 最小生成树(下)

 推荐阅读: 重生弃少归来 黎明之剑 说好的末世呢 七根凶简 民调局异闻录之勉传 学霸的黑科技系统 无限英灵神座 快穿攻略,病娇男主,宠翻天! 终极透视眼 纵横诸天的武者

编程之战 第一百五五章 最小生成树(下)


    那么,就开始编写Prim算法吧!
    首先,做异常情况判断。
    两种情况视为异常:
    1.地图为空(没有意义嘛)
    2.地图连通性无法保证
    这些情况,通通返回空地图。
    然后,从地图中选取一个点,作为起始顶点。
    随便哪个点都可以的!
    将该点标识为已访问,并将含有起始顶点的边添加到优先级队列。
    接下来,是算法的关键性部分。
    1.从优先级队列中取出权重最小的边。
    2.如果这条边,两端的点都被访问过,说明是失效的边,将其舍弃。
    3.这条边没有被舍弃,那就是有效的,加入最小生成树。
    4.以这条边,没有被访问过的端点,继续标识为已访问,并将含有该端点的边添加到优先级队列。
    5.又从1.开始,反复循环。
    这似乎是个从1到4阶段永不停歇的贪心计算过程。
    然而,万物有始必有终结。
    当图中所有的顶点,都被最小生成树得到(顶点数量相同)。
    或者,当优先级队列为空。
    这个算法就结束了它的使命。
    此时得到的,就是原来地图的最小生成树。

温馨提示:方向键左右(← →)前后翻页,上下(↑ ↓)上下滚用, 回车键:返回列表

上一章章节目录下一章