作者:道长
链接:https://www.zhihu.com/question/53064373/answer/133956550
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
5-1 迪杰斯特拉算法
注意:把书上给的图文例子看懂。
注意:此算法求的是某个给定顶点到其他各顶点的最短路径(单源)。
5-2 弗洛伊德算法
注意:把书上的图文例子看懂。
注意:此算法求的是图中所有顶点 的两两最短路径。
链接:https://www.zhihu.com/question/53064373/answer/133956550
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
学习先决条件:指针基础 数组和链表 图的基本概念(如边,顶点,路径,权值)
1 理解图的两大存储结构
1-1 邻接矩阵
1-2 邻接表
注意:邻接表中,指针数组里的每一个指针都是一个单链表的头指针
注意:单链表里每个节点里存储的是图中每条边的信息。
2 理解图的遍历算法
2-1 深度优先遍历 dfs
注意:花半小时看懂dfs的递归代码。
2-2 宽度优先遍历 bfs
注意:又叫广度优先算法,需要一个队列,用非递归实现,请用半小时看懂实现代码。
3 图的最小代价生成树算法
3-1 普里姆算法
注意:把书上给的图文例子看懂。
3-2 克鲁斯卡尔算法
注意:把书上给的图文例子看懂
注意:克鲁斯卡尔的时间复杂度
4 AOV和AOE网络
4-1 AOV 拓扑排序算法过程
注意:AOV和AOE都可以理解为一个工程图,工程由很多项目组成,项目直接有相互依赖。不同的是,AOV图中的顶点代表项目,对比后文的AOE。
4-2 AOE 最长路径
注意:与AOV相反,AOE用边来代表项目,因此边的权值可以理解为这个项目消耗的时间。
5-1 迪杰斯特拉算法
注意:把书上给的图文例子看懂。
注意:此算法求的是某个给定顶点到其他各顶点的最短路径(单源)。
5-2 弗洛伊德算法
注意:把书上的图文例子看懂。
注意:此算法求的是图中所有顶点 的两两最短路径。