dijkstra算法+堆优化 ///各种被坑~~~
来源:互联网 发布:php 图片处理类 编辑:程序博客网 时间:2024/06/08 16:47
主要思想:在选取当前距离最小点时,用堆的方法实现选最小点上时间的优化。
新手第一次写,各种被坑!!!
1、一定要用最小堆从堆顶取值,而不能用最大堆取排在最后的值,因为排在最后的值不一定是最小的。
2、因为不能在调整堆的时候直接改变dis[]的值(如果改变的话在输出的时候会乱掉..),所以应该只是借助dis[]的值去调整顶点的位置,所以需要一个数组(从1到n代表堆的位置,每个位置保存当前在这个位置上的顶点编号)。而函数需要传入该顶点所在的堆的位置,所以有需要一个数组(从1到n代表每个顶点,每个位置保存该顶点所在堆中的位置。)
3、从堆顶取值和最后交换,在将堆顶shiftdown。
4、中间更改了某一个点的dis值后,需要将这个点shiftup。
5、最最最被坑的一点,感觉自己智商堪忧,竟然在把局部变量改成全局变量时,忘记删掉原来的局部变量了(........................................)几乎将每一步都printf出来才发现这个问题。
0 0
- dijkstra算法+堆优化 ///各种被坑~~~
- 堆优化的Dijkstra算法
- hdu2112 dijkstra算法+堆优化
- Dijkstra算法及其堆优化
- 算法储备之Dijkstra算法的各种优化(堆排序、priority_queue、set 优化)
- 最短路算法 堆优化 dijkstra+heap
- Dijkstra算法+堆优化(模板)
- 再谈Dijkstra算法和堆优化
- Dijkstra算法--邻接表存储+堆优化
- 堆优化的Dijkstra
- DIJKSTRA堆优化
- Dijkstra + 堆优化
- 堆优化Dijkstra模版
- Dijkstra+堆优化
- 堆优化Dijkstra
- 堆优化Dijkstra
- Dijkstra + 堆优化
- Dijkstra+堆优化 模板
- [IOS APP]慧悟禅故事-有声小说
- 全局雾效2
- linux环境常用的性能监控和协助开发调试工具
- Toasty
- conda能够实现多个环境共存原因的感悟
- dijkstra算法+堆优化 ///各种被坑~~~
- win10 linux子系统安装ipython
- Ubuntu 16.04 + GTX1060 + Cuda8.0 + OpenCV3.2
- 【剑指Offer】二叉搜索树的第k个结点
- node及npm安装过程中的环境变量设置win7
- 阿里笔试题(2017在线编程题)-- 数串分组
- Eclipse更改字符集
- 10-16 项目规划
- Editext单独设置hint的文字大小