当前位置: 首页 > web >正文

代码随想录算法训练营第五十八天 | 1.拓扑排序精讲 2.dijkstra(朴素版)精讲 卡码网117.网站构建 卡码网47.参加科学大会

1.拓扑排序精讲

题目链接:117. 软件构建

文章讲解:代码随想录

思路:

把有向无环图进行线性排序的算法都可以叫做拓扑排序。

实现拓扑排序的算法有两种:卡恩算法(BFS)和DFS,以下BFS的实现思路。

节点0 的入度为0 出度为2, 也就是没有边指向它,而它有两条边是指出去的。节点的入度表示有多少条边指向它,节点的出度表示有多少条边从该节点出发。做拓扑排序的时候,应该优先找入度为0的节点,只有入度为0,它才是出发节点。

拓扑排序的过程,两步:

(1)找到入度为0 的节点,加入结果集

(2)将该节点从图中移除

循环以上两步,直到 所有节点都在图中被移除了。

如果发现结果集元素个数不等于图中节点个数,我们就可以认定图中一定有有向环,这也是拓扑排序判断有向环的方法。

2.dijkstra(朴素版)精讲

题目链接:47. 参加科学大会(第六期模拟笔试)

文章讲解:代码随想录

思路:给出一个有向图,一个起点,一个终点,问起点到终点的最短路径。

最短路算法中的 dijkstra 算法:在有权图(权值非负数)中求从起点到其他节点的最短路径算法。

(dijkstra 算法可以同时求起点到所有节点的最短路径,权值不能为负数)

dijkstra 算法 同样是贪心的思路,不断寻找距离 源点最近的没有访问过的节点。

dijkstra三部曲:

第一步,选源点到哪个节点近且该节点未被访问过

第二步,该最近节点被标记访问过

第三步,更新非访问节点到源点的距离(即更新minDist数组)

在dijkstra算法中,minDist数组用来记录每一个节点距离源点的最小距离。

http://www.xdnf.cn/news/2047.html

相关文章:

  • 【基于Qt的QQ音乐播放器开发实战:从0到1打造全功能音乐播放应用】
  • 银行卡归属地查询的快速入门:API接口性能与安全兼备的高效实现
  • 文章记单词 | 第42篇(六级)
  • Integer[]::new方法引用
  • NLP系列【自然语言处理的深度学习模型综述】
  • 深入理解指针 (1)
  • 虚拟机网络NAT配置
  • 【Git】连接github时的疑难杂症(DNS解析失败)
  • 通过API接口在自己的独立站系统上架商品信息。(实战案例)
  • 1.9软考系统架构设计师:优秀架构设计师 - 超简记忆要点、知识体系全解、考点深度解析、真题训练附答案及解析
  • uniapp-商城-38-shop 购物车 选好了 进行订单确认4 配送方式1
  • 12.ArkUI Scroll的介绍和使用
  • 制作一款打飞机游戏22:表格导出
  • Mysql唯一性约束
  • 重生之--js原生甘特图实现
  • 从LLM到AI Agent的技术演进路径:架构解析与实现逻辑
  • 图解YOLO(You Only Look Once)目标检测(v1-v5)
  • QuecPython+GNSS:实现快速定位
  • Kafka Tool(Offset Explorer)国内下载: Kafka可视化连接工具
  • Vue选项式 API 与组合式 API
  • Docker容器持久化
  • 认识 Linux 内存构成:Linux 内存调优之页表、TLB、缺页异常、大页认知
  • Ubuntu中的防火墙工具
  • 实战!银河麒麟 KYSEC 安全中心执行控制高级配置指南
  • 苹果新规生效:即日起不再接受iOS 17 SDK编译的应用提交
  • BEVPoolv2:A Cutting-edge Implementation of BEVDet Toward Deployment
  • 16.ArkUI Toggle的介绍和使用
  • UML 活动图详解之网络媒体教学系统活动图分析
  • Memcached 主主复制架构搭建与 Keepalived 高可用实现
  • OpenCV 图形API(64)图像结构分析和形状描述符------在图像中查找轮廓函数findContours()