news 2026/6/10 14:58:45

代码随想录算法训练营第五十八天|拓扑排序精讲,Dijkstra算法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
代码随想录算法训练营第五十八天|拓扑排序精讲,Dijkstra算法

拓扑排序

这个有向图转成线性的排序 就叫拓扑排序

当然拓扑排序也要检测这个有向图 是否有环,即存在循环依赖的情况,因为这种情况是不能做线性排序的。

所以拓扑排序也是图论中判断有向无环图的常用方法

可以用BFS& DFS两种方法解决

接下来我给出 拓扑排序的过程,其实就两步:

  1. 找到入度为0 的节点,加入结果集
  2. 将该节点从图中移除

Coding

1. 为了每次可以找到所有节点的入度信息,我们要在初始化的时候,就把每个节点的入度 和 每个节点的依赖关系做统计。

2. 用queue存放nodes whose in-degree = 0

3. 将该节点作为出发点所连接的节点的in-degree -1

Dijkstra朴素版

之前在optimization课堂上学过,希望作为复习,捡起来很快

求最短路

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

需要注意两点:

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

dijkstra三部曲

  1. 第一步,选源点到哪个节点近且该节点未被访问过
  2. 第二步,该最近节点被标记访问过
  3. 第三步,更新非访问节点到源点的距离(即更新minDist数组)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/24 12:53:27

无需React/Vue适配!Qwen3Guard-Gen-WEB原生组件轻松集成

无需React/Vue适配!Qwen3Guard-Gen-WEB原生组件轻松集成 在生成式AI内容爆发的今天,用户输入可能隐藏敏感意图,模型输出也可能无意触碰政策红线。从社交评论到智能客服,内容安全已不再局限于关键词匹配,而需理解语境、…

作者头像 李华
网站建设 2026/5/19 22:29:24

大数据领域数据架构的实时数据同步方案

大数据领域数据架构的实时数据同步方案 关键词:实时数据同步、数据架构、ETL/ELT、变更数据捕获(CDC)、消息队列、数据管道、分布式系统 摘要:本文深入探讨大数据领域实时数据同步的核心技术与架构设计,系统解析变更数…

作者头像 李华
网站建设 2026/6/9 7:22:53

踩过这些坑才懂!运行SenseVoiceSmall的正确姿势

踩过这些坑才懂!运行SenseVoiceSmall的正确姿势 1. 引言:为什么选择 SenseVoiceSmall? 在语音识别技术快速发展的今天,传统ASR(自动语音识别)系统已无法满足日益复杂的实际需求。用户不仅希望“听清”说了…

作者头像 李华
网站建设 2026/6/1 4:49:41

YOLO-v5实战案例:无人机避障系统中的目标感知模块

YOLO-v5实战案例:无人机避障系统中的目标感知模块 1. 引言 1.1 业务场景描述 在无人机自主飞行任务中,实时环境感知是实现安全避障的核心能力。尤其是在复杂城市环境或低空飞行场景下,无人机需要快速识别前方的障碍物(如建筑物…

作者头像 李华
网站建设 2026/6/10 16:31:35

AutoGLM-Phone-9B模型详解:移动端高效多模态融合方案

AutoGLM-Phone-9B模型详解:移动端高效多模态融合方案 随着边缘智能的快速发展,终端侧大模型正逐步成为人机交互的核心引擎。AutoGLM-Phone-9B作为一款专为移动设备优化的多模态大语言模型,凭借其轻量化架构与跨模态融合能力,在资…

作者头像 李华
网站建设 2026/5/31 16:36:14

Open-AutoGLM部署后无法响应?检查这几点

Open-AutoGLM部署后无法响应?检查这几点 1. 引言 1.1 问题背景与场景描述 Open-AutoGLM 是智谱开源的手机端 AI Agent 框架,基于视觉语言模型(VLM)实现多模态理解与自动化操作。用户只需输入自然语言指令,如“打开小…

作者头像 李华