这是一道最短路径的题,开始图简便用floyd算法,结果超时。
后来用Dijkstra算法,还是超时,因为求新加入的结点时我用的是线性算法,复杂度还是O(n^3).
注意到这个图是一个稀疏图,因此用一个heap来实现求最近点,这样复杂度为O(n^2logn)。
注:priority_heap是一个大顶堆
另外知道了gdb的display命令。每到断点的时候自动显示变量的值,原来我一直n,p variable 。。
后来用Dijkstra算法,还是超时,因为求新加入的结点时我用的是线性算法,复杂度还是O(n^3).
注意到这个图是一个稀疏图,因此用一个heap来实现求最近点,这样复杂度为O(n^2logn)。
注:priority_heap是一个大顶堆
另外知道了gdb的display命令。每到断点的时候自动显示变量的值,原来我一直n,p variable 。。
本文探讨了针对稀疏图进行最短路径计算时,从Floyd算法和Dijkstra算法的线性实现转向使用堆优化后的Dijkstra算法的过程。通过采用优先队列将复杂度降低至O(n²logn),解决了大规模稀疏图计算中的效率问题。
521

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



