算法|10种图算法直观可视化解释
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
快速介绍10个基本的图算法 , 并举例和可视化
图已经成为一种强大的建模和捕获真实场景中的数据的手段 , 比如社交媒体网络、网页和链接 , 以及GPS中的位置和路线 。 如果您有一组相互关联的对象 , 那么您可以使用图来表示它们 。
在这篇文章中 , 我将简要地解释10个对分析和应用非常有用的基本图形算法 。
首先 , 让我们介绍图 。
什么是图?图由一组有限的顶点或节点和一组连接这些顶点的边组成 。 如果两个顶点通过同一条边互相连接 , 则称它们为邻接 。
下面给出了一些与图相关的基本定义 。 您可以参考图1中的示例 。
- 阶Order:图中顶点的数量
- 边数Size:图中的边数
- 顶点度Vertex degree:与一个顶点关联的边的数量
- 孤立顶点Isolated vertex:图中与其他顶点没有连接的顶点
- 自循环Self-loop:从顶点到自身的一条边
- 有向图Directed graph:所有的边都有一个方向来表示起始点和结束点的图
- 无向图Undirected graph:具有没有方向的边的图
- 有权图Weighted graph:图的边具有权值
- 无权图Unweighted graph:图的边没有权值
广度优先搜索(Breadth-first search)
遍历或搜索是可在图上执行的基本操作之一 。 在广度优先搜索(BFS)中 , 我们从一个特定的顶点开始 , 在进入下一层的顶点之前探索它当前深度的所有邻居 。 与树不同 , 图可以包含循环(第一个和最后一个顶点是相同的路径) 。 因此 , 我们必须跟踪访问过的顶点 。 在实现BFS时 , 我们使用队列数据结构 。
图2表示一个示例图的BFS遍历的动画 。 注意顶点是如何被发现(黄色)和被访问(红色)的 。
应用
- 用于确定最短路径和最小生成树 。
- 被搜索引擎爬虫用来建立网页的索引 。
- 用来在社交网络上搜索 。
- 用于查找可用的邻接节点在对等网络 , 如BitTorrent 。
在深度优先搜索(DFS)中 , 我们从一个特定的顶点开始 , 在回溯(backtracking)之前沿着每个分支尽可能地搜索 。 在DFS中 , 我们还需要跟踪访问过的顶点 。 在实现DFS时 , 我们使用堆栈数据结构来支持回溯 。
图3表示对图2中使用的同一个示例图进行DFS遍历的动画 。 注意它是如何遍历到深度和回溯的 。
应用
- 用于查找两个顶点之间的路径 。
推荐阅读
- 直观视界|Fit手表,颜值很高,续航有惊喜,华为将发布Watch
- 直观视界|你觉得这个功能重要吗?,浅谈手机的NFC功能
- 花开无田|18岁创立新算法,《科学》称:他杀死量子计算,华裔天才唐乙文
- tiktok|有意收购TikTok的美方,有四套收购方案,包括剔除核心算法
- IT之家|买家讨论四种收购方案:包含剔除核心算法,TikTok
- 算法|名不虚传! 字节技术官甩出的\保姆级\数据结构与算法笔记太香了
- 直观视界|你觉得苹果的产品怎么样?,苹果新的平板电脑被曝光
- tiktok|AI算法限制出口,TikTok出售再添疑云,微软、甲骨文或无心收购
- 那年初夏|华人学者提出软件算法架构加速AI实时化,性能超越GPU、FPGA
- IT之家|TikTok算法被点名,中国限制出口技术目录调整