| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> ??Python分而治之?? 算法图解:第七章:狄克斯特拉算法 -> 正文阅读 |
|
[Python知识库]??Python分而治之?? 算法图解:第七章:狄克斯特拉算法 |
第七章:狄克斯特拉算法广度优先搜索用于找出段数最少的路径,如果你要找出最快的路径,该咋办呢?需要用到另一种算法:狄克斯特拉算法。 7.1使用狄克斯特拉算法四个步骤: 第一步:找出最便宜的节点。你站在起点,不知道该前往节点A还是前往节点B。前往这两个节点需要多少时间呢? 第二步:计算节点B前往其各个邻居所需要的时间。突然你又发现了一条经B到A更近的路,这样对于经B的邻居A而言,如果找到前往他的更短路径,就更新其开销。 第三步:重复! 最后一步:计算最终的路径。 7.2术语狄克斯特拉算法用于每条边都有关联数字的图,这些数字称为权重。带权重的图称为加权图,不带权重的图称为非加权图。 7.3负权边如果有负权边,就不能使用狄克斯特拉算法。因为负权边会导致这种算法不管用。根据狄克斯特拉算法,没有比不支付任何费用获得海报更便宜的方式。(你知道这是不对的!) 7.4实现1.首先创建一个散列表:
但这里需要需要同时储存邻居和前往邻居的开销。例如:起点有两个邻居——A和B
3.下面添加其他节点和邻居:
对不知道的开销,可以将其设置为无穷大:
4.创建开销表:
5.创建储存父节点的散列表:
6.创建一个数组,存储记录处理过的节点:
7.找出开销最低的节点:
8.最终实现:
📢📢📢最后的福利🍋🍋🍋最后一点小福利带给大家:如果想快速上手python的小伙伴们,这个详细整理PPT可以迅速帮助大家打牢python基础,需要的小伙伴们可以下载一下 Python入门基础教程全套+小白速成+学不会来找我! 🍻🍻🍻 🌲🌲🌲 好啦,这就是今天要分享给大家的全部内容了 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 13:52:23- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |