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

算法笔记(七)—— 图的相关知识及算法

图的存储方式

1. 邻接表(记录关于某点的直接相邻点)

2. 邻接矩阵(一定是正方形的矩阵,对点进行编号,点到点的权值由距震中的值表示,无直接相连记为正无穷)

图的模板

unordered_map<int,Node>

unordered_set<Edge>

Node类:值、入度、出度、点发散出去的边连接的邻居、属于该点的边

Edge类:权值(距离)、起始点(from)、终止点(to)

图的宽度优先遍历

使用unordered_set来进行去重,放置重复点进队列

 

图的深度优先遍历

 

拓扑排序

有向无环图,先处理入度为0的点,然后将该点及其影响擦掉,继续寻找入度为0的点,周而复始。

无向图生成最小生成树(K算法 P算法)

保证连通性且整体边权值最小

K算法(从边的角度出发)

1. 对所有边排序,从最小开始考虑

2. 如果加上该边没有形成环则加上,若形成环则考虑下一条边

怎么考虑会不会形成环:假设所有点一开始自己是个集合(都不连通),判断是否有环,看一条边的from和to在不在一个集合,若不在将两个点所在集合合并。

P算法

1. 所有边都被锁定

2. 从某点出发,将该点直接相连的所有边解锁,选权值最小的边(且左右两侧不在一个模型内),将邻点加入,周而复始。

Dijkstra算法(要求没有累加权值为负数的环)

规定出发点 ,该点到所有点的最短距离

1. 初始化,到自己0,到别的点正无穷

2. 从当前最小值对应的点出发,看其所有的边,发现了更短的距离则改写

3. 周而复始即可,直到所有点都作为出发点被遍历到

http://www.lryc.cn/news/10050.html

相关文章:

  • ssh配置互信时错误解决方法
  • SQL69 返回产品并且按照价格排序
  • vue+elementUI 实现设置还款日字母弹窗组件
  • 【JavaGuide面试总结】Redis篇·中
  • Python:每日一题之全球变暖(BFS连通性判断)
  • VUE -- defineExpose
  • 实用调试技巧【下篇】
  • 【数据结构期末例题】
  • 管理物理和快照备数据库(Physical and Snapshot Standby Databases)
  • 双目立体视觉:SAD算法
  • 海外问卷调查答题技巧,纯干货分享,新手小白看过来
  • 【NGINX入门指北】Nginx Web 架构实验
  • rtt-nano移植
  • cnn+transformer
  • Python fileinput模块:逐行读取多个文件
  • Vue3路由传参
  • 用户管理——认证功能JWT和Session
  • hashlib — 加密哈希算法
  • 四喜临门选股预警源码指标
  • Kotlin新手教程五(扩展)
  • QT入门Containers之Widget、Frame
  • 数据结构与算法基础-学习-12-线性表之顺序队
  • Python 字典(Dictionary)小窍门
  • 知识图谱构建技术综述
  • 环境变量和进程地址空间
  • 【数据结构】栈和队列
  • sql复习(视图、Top-N分析、其他数据库对象)
  • 2023年私募股权基金研究报告
  • Redis单点故障+红锁原理
  • 数据库中的存储过程