个人感悟,关于最小生成树prim算法跟最短路dijkstra算法的异同
个人感悟,关于最小生成树prim算法和最短路dijkstra算法的异同
首先看到二者的代码会有一种一样的感觉,其实不然。二者解决的问题不同。
prim解决的时最小生成树问题,具体来说就是先构建图并放进去一个起点,去找到所有最短的边来构建一棵树,而后加入的点依旧有可能跟起点连着,遍历图中所有点,把所有的能构成树的最短边之和求出来,就解决了最小生成树问题。打个比方:假设你在郑州,你打算去西安、青岛、武汉、重庆旅游,最小生成树算的是你坐飞机(因为快!!)而不是做绿皮火车去这几个地方的总时间,它算的是图中所有的点所构成的树的最短边之和.
dijkstra解决的是最短路径问题,开始也是先构建图并放进去一个起点(这点两者一样),接下来,一定是去连终点方向,可以为多线开工,去完成任务。最先到终点的即为所求的最短路径。打个比方:我要从北京去上海,飞机可以到达,高铁也可以到达,高速大巴也行,但是我们要在最短时间内到上海所以选择飞机。
版权声明:原创文章,若要转载,请与博主联系,谢谢