Dijkstra迪杰斯特拉算法原理

雨燕双飞 提交于 2020-02-17 16:39:54

定义集合S,初始化只有源点s.把一个个顶点不断往里面收敛;

定义距离的数组dist.初始化为无穷;

时间复杂度:根据不同的实现

1.扫描所有未被收入的顶点,o:v^2+E,对于稠密图效果好。e=v^2(边的条数为点的平方级别,边多为稠密)

2.dist存储在最小堆中,取dist只要堆的根节点弹出就行,但是更新时候还要调节堆logv。复杂度elogv;对于稀疏图效果好。

e=v(边的条数与点的个数同级别)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!