计算机中非常重要的一个领域——图论

不可否认,图论是计算机领域中非常重要的一个领域。而图的存储或者说建图是处理图论问题的大前提。

在算法竞赛中也出现的非常平凡。树这一数据结构也是一种特殊的图,可见图所延伸的领域可是非常的广阔。

任何建图都需要考虑多个方面。

如:

  • 点和边的表示关系
  • 有向图还是无向图
  • 权值的数据结构
  • 遍历方式
  • 点号或边号是否有序

例题讲解

下文以网络延迟时间 为实例代码展示。

本题是最短路算法的典型应用题。常见最短路算法有很多,如:dijkstra, Floyd, Bellman Frod, SPFA 等等。

本文不具体讲解这些算法的原理与细节,仅以朴素 dijkstra 算法为基本模板进行表示。

朴素 dijkstra 算法能很好的与多种常见建图方式应用在一起。

为了辅助读者的阅读,这里就做一下简单算法流程介绍:

  1. 寻找出离源点距离最近的未访问的点(贪心)
  2. 基于该点,对该点邻接的点进行松弛操作
  3. 循环上述操作,直到无法找出能贪心到的最近点
相关推荐
悠仁さん1 天前
数据结构 图(代码实现篇 C语言版)
数据结构·算法·图论
江屿风1 天前
C++图论基础Bellman-Ford与spfa算法如何判断负环
开发语言·c++·笔记·算法·图论
papership2 天前
【入门级-算法-8、图论算法:泛洪算法 (Flood Fill)】
算法·图论
江屿风2 天前
C++图论基础单源最短路-常规版dijkstra算法/堆优化版dijkstra算法/bellman-ford 算法/spfa 算法流食般投喂
开发语言·c++·笔记·算法·图论
hai3152475434 天前
一种通过空间几何转换进行软件编程计算的方式与现有计算的对比
人工智能·深度学习·数学建模·硬件架构·几何学·图论·拓扑学
江屿风4 天前
C++图论基础拓扑排序经典OJ题流食般投喂
开发语言·c++·笔记·算法·图论
Lsk_Smion5 天前
力扣实训 _ [207].课程表/图论
数据结构·leetcode·图论
江屿风8 天前
C++图论基础最小生成树经典OJ题流食般投喂
开发语言·c++·笔记·算法·深度优先·图论
San813_LDD9 天前
[数据结构]LeetCode学习
数据结构·算法·图论
handler0110 天前
【算法】并查集(普通/扩展/带权)模板与例题
数据结构·c++·笔记·算法·c·图论·查并集