舟山地区的网站建设费用与图片页面设计服务哪个更实惠?
摘要:舟山网站建设费用,图片页面设计,专门做素菜的网站,怎么查企业6 最短路径 最短路径,对于图来说,是两顶点之间经过的边数最少的路径;对于网来说&
舟山网站建设费用,图片页面设计,专门做素菜的网站,怎么查企业6 最短路径 最短路径#xff0c;对于图来说#xff0c;是两顶点之间经过的边数最少的路径#xff1b;对于网来说#xff0c;是指两顶点之间经过的边上权值之和最小的路径。路径上第一个顶点为源点#xff0c;最后一个顶点是终点。
6.1 迪杰斯特拉#xff08;Dijkstra对于图来说是两顶点之间经过的边数最少的路径对于网来说是指两顶点之间经过的边上权值之和最小的路径。路径上第一个顶点为源点最后一个顶点是终点。
6.1 迪杰斯特拉Dijkstra算法 以如下无向图为例 我们来计算下标为0的顶点到其他顶点的最短路径首先定义三个数组calculated[j]表示0-j的最短路径是否已计算出来pathVal[j]表示0-j的最短路径目前还未进行计算我们设置所有元素值均为无穷大pre[j]表示0-j中经历的顶点例如pre[1]3、pre[3]2、pre[2]0表示的 (1) pre[1]3表示0-1需要经过3 (2) pre[3]2表示0-3需要经过2 (3) pre[2]0表示0-2可以直达 (4) 因此可以得出结论0-1的路径是0-2-3-1 再定义一个变量min表示“0-上一个顶点的最小权值”k表示min对应的顶点的下标因此初始情况如下所示 接下来来看0到第0个顶点的最短路径这个不需要计算肯定是0且不需要经过其他顶点因此有如下情况 到目前为止min仍然为0k仍然为0接下来看0到其他顶点的最短路径我们把arc[0][j]与现有的pathVal[j]比较规则是 (1) calculated[j]1表示已找到最短路径不进行任何处理 (2) 如果arc[0][j]minpathVal[j]则令pathVal[j]arc[0][j]min令pre[j]k表示0-j至少要经过顶点k (3) 如果arc[0][j]minpathVal[j]则pathVal[j]不变pre[j]也不变表示0-j不会经过顶点k 那么有以下结果 (1) calculated[0]1不进行任何处理 (2) arc[0][1]min160pathVal[1]无穷大令pathVal[1]arc[0][1]min16令pre[j]k0 (3) arc[0][2]、arc[0][3]与arc[0][1]处理方式一致 (4) arc[0][4]和arc[0][5]都为无穷大加上min后等于pathVal[4]和pathVal[5]因此pathVal[4]、pathVal[5]和pre[4]、pre[5]不进行处理 (5) 这时来看最新的pathVal[j]发现最小的权是pathVal[3]于是令minpathVal[3]12令k3这也表示0-3的最短路径已找到因此令calculated[3]1如下 k3即其他未计算出的最短路径都有可能会经过顶点3因此我们把arc[3][j]与现有pathVal[j]比较规则仍与arc[0][j]时一致特别的arc[3][2]min101226pathVal[2]15因此pathVal[2]和pre[2]不进行变更当然arc[3][1]也是同样的 这时min15k2因此处理arc[2][j]如下 然后继续处理直到calculated[j]的元素都为1 我们来看现在的pathVal[j]和pre[j] 可以知道以下内容 (1) 顶点5即E对应的pathVal[5]是43pre[4]是4因此顶点0-5即C-E的最短路径是43且中间肯定会经过顶点4即顶点F即肯定有C-F-E (2) 顶点4即F对应的pathVal[4]是26pre[4]是3因此顶点0-4即C-F的最短路径是26且中间肯定会经过顶点3即顶点B即肯定有C-B-F结点(1)那么肯定有C-B-F-E (3) 顶点3即B对应的pathVal[3]是12pre[3]是0因此顶点0-3即C-B的最短路径是12且无中间顶点那么结点(1)和(2)得到结论 1) C到B的最短路径是12路径是C-B 2) C到F的最短路径是26路径是C-B-F 3) C到E的最短路径是43路径是C-B-F-E (4) 同样的规则能分析到 1) C到A的最短路径是15路径是C-A 2) C到D的最短路径是15路径是C-A-D 以上即为迪杰斯特拉算法。
