图搜索与最短路径算法详解
图搜索基础
在图的世界里,搜索是一项重要的操作。例如有一些图包含五个顶点,像 A - B - C - D - E 这样的图,由于边更多,搜索时需要的步骤也就更多。在最坏的情况下,图搜索的时间复杂度是 O(V + E),这里的 V 代表顶点数量,E 代表边的数量。也就是说,当我们要搜索的顶点是最后才找到的,或者这个顶点根本不在图里时,就会出现这种最坏情况。无论是广度优先搜索还是深度优先搜索,都存在这样的最坏情况。
不过,我们可以根据图的形状和要搜索的数据,选择广度优先搜索或者深度优先搜索,以此来优化搜索过程。合适的搜索方法能够增加我们在遍历完整个图之前就找到目标顶点的概率,避免陷入最坏情况。
图数据库
由于图在处理涉及关系的数据(比如社交网络中的朋友关系)时非常高效,所以在现实世界的软件应用中,常常会使用特殊的图数据库来存储这类数据。这些数据库运用图论的相关概念和元素,优化对这类数据操作的效率。很多社交网络应用的底层就是由图数据库来提供支持的。
常见的图数据库有 Neo4j( http://neo4j.com )、ArangoDB( https://www.arangodb.com )和 Apache Giraph( http://giraph.apache.org )。如果你想深入了解图数据库的工
超级会员免费看
订阅专栏 解锁全文
3743

被折叠的 条评论
为什么被折叠?



