计算机等级考试—Dijkstra(戴克斯特拉)& Kruskal(克鲁斯卡尔)—东方仙盟

Dijkstra(戴克斯特拉)& Kruskal(克鲁斯卡尔)核心特点 + 核心区别

用超市管理场景类比,纯干货无废话,记牢 3 个核心点就能分清,今天直接吃透!

一、先明确:俩算法解决的问题完全不同(基础必记)

  • Dijkstra(戴克斯特拉) :解决单源最短路径 → 比如从超市入口(起点 A)到各个货架 / 收银台(其他节点),找每条路的最短距离,关注「点到点的最短路径」。
  • Kruskal(克鲁斯卡尔) :解决最小生成树 → 比如给超市所有货架(节点)装连接的传送带(边),要求传送带总长度最短,且所有货架都连通、不绕圈(无环),关注「全连通的最小总代价」。

二、各自核心特点(按考试考点提炼,记死!)

📌 Dijkstra(戴克斯特拉)算法
  1. 核心策略 :贪心,每次选「当前离起点最近的未访问节点」,以它为跳板更新其他节点到起点的距离,逐步扩散到所有节点。
  2. 适用场景 :边的权值必须非负(比如距离、费用不能是负数,超市里不可能有 "负距离" 的路);有向 / 无向图都能用,主打「单源(一个起点)」最短路径。
  3. 关键操作 :维护一个距离数组(记录每个节点到起点的当前最短距离),不断更新、选最小节点,直到所有节点都访问完。
  4. 超市例子:从入口 A 到果蔬区 E,先找离 A 最近的零食区 C(1 米),再从 C 更新区到 E 的距离;再找次近的饮料区 D(2 米),再从 D 更新,最终找到 A 到 E 的最短路。
📌 Kruskal(克鲁斯卡尔)算法
  1. 核心策略 :贪心,每次选「权值最小的边」,如果这条边连的两个节点没连通(不形成环),就选它,直到所有节点都连通。
  2. 适用场景 :无向图(传送带双向连,不存在单向边);边的权值可正可负,主打「无向图的最小生成树」,不关心起点,只关心全连通的最小总代价。
  3. 关键操作 :把所有边按权值从小到大排序 ,用并查集(快速判断两个节点是否连通,避免环),依次选边、合并节点,直到选够「节点数 - 1」条边(n 个节点的生成树必是 n-1 条边)。
  4. 超市例子:给 8 个货架装传送带,先选 1 米的 A-C 传送带,再选 2 米的 D-F 传送带,再选 3 米的 B-E 传送带... 只要不绕圈就选,直到 8 个货架都连起来,总长度最短。

三、最核心区别(一张表搞定,考试不会混)

对比项 Dijkstra(戴克斯特拉) Kruskal(克鲁斯卡尔)
解决问题 单源最短路径(一个起点→所有点) 无向图最小生成树(全连通最小代价)
贪心对象 选节点(当前离起点最近的) 选边(当前权值最小的)
核心工具 距离数组 + 选最小节点 边排序 + 并查集(避环)
边权要求 必须非负 无要求(正 / 负都可)
图的类型 有向 / 无向图都可 仅无向图
核心目标 找「点到点的最短距离」 找「全连通的最小总权值」

四、一句话速记(刻脑子里)

  • 戴克斯选点找最短,边权不能负,有向无向都能搞;
  • 克鲁斯选边连全图,只认无向图,并查集来防绕圈

阿雪技术观

在科技发展浪潮中,我们不妨积极投身技术共享。不满足于做受益者,更要主动担当贡献者。无论是分享代码、撰写技术博客,还是参与开源项目维护改进,每一个微小举动都可能蕴含推动技术进步的巨大能量。东方仙盟是汇聚力量的天地,我们携手在此探索硅基生命,为科技进步添砖加瓦。

Hey folks, in this wild tech - driven world, why not dive headfirst into the whole tech - sharing scene? Don't just be the one reaping all the benefits; step up and be a contributor too. Whether you're tossing out your code snippets, hammering out some tech blogs, or getting your hands dirty with maintaining and sprucing up open - source projects, every little thing you do might just end up being a massive force that pushes tech forward. And guess what? The Eastern FairyAlliance is this awesome place where we all come together. We're gonna team up

相关推荐
海绵宝宝转agent12 分钟前
LeetCodehot100题解
java·笔记·学习·算法·leetcode·深度优先
青少儿编程课堂21 分钟前
2026蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:堆排序与优先队列解析
c++·python·算法·bfs·信息学竞赛
SZYSK1 小时前
OpenHarmony 上读卡、推理和双屏刷新抢 CPU:核验机与消费机的调度差
物联网·算法·harmonyos·1024程序员节
Ivanqhz1 小时前
MoE + LLM 应用
数据库·人工智能·pytorch·python·深度学习·算法·1024程序员节
lpfasd1232 小时前
推荐算法进化史
算法·机器学习·推荐算法
Pniubi2 小时前
力扣543二叉树的直径(深度优先搜索法(递归))
算法·leetcode·职场和发展
UIU11413 小时前
P1233 [ICPC 2001 Taejon R] 木棍加工
数据结构·c++·算法·动态规划
论文复现现场13 小时前
WRF、FEA 能用 L40S 加速吗?求解器检查、断点恢复与长期运行
java·数据库·算法·wrf·有限元分析·gpu计算·断点续算
ZhengEnCi13 小时前
用 AI 写代码为什么拼到最后还是拼人:算力瓶颈与领域专家提示词的本质差异
算法·架构
秋天的怀念_David14 小时前
第二十一夜 · 数字黑洞与西西弗斯的惩罚
java·程序人生·算法