chnhideyoshi

Focus On Algorithm Implementation On Geometry Processing & Scientific Visulization & Image Processing

  :: :: 博问 :: 闪存 :: :: :: :: 管理 ::

2014年3月16日

摘要: 学过数据结构的人都应该知道Dijkstra算法,这是最为经典的带权图寻路算法。其主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法能得出最短路径的最优解,但由于它遍历计算的节点很多,所以效率低。而之后要介绍的A*算法也是在此基础上的一个启发式的改良,能够有效的减少计算遍历节点的个数。各种数据结构书和网上都有对Dijkstra算法的讲解与代码实现,不过少有详细对比二者程序结构区别的文章,而且部分文章的实现虽然简练但不宜理解,因此本文采用从一个较为形象的思路去理解算法,实现代码不求简练和高效,但求通俗易懂,并且利用了面向对象的思路去实现这一算法和A*算法。文章写的比较长,希望能覆盖到所有在实现该算法过程中可能产生疑惑的点,但愿对想了解或者回顾这个算法的人有所帮助。img src="http://images.cnblogs.com/cnblogs_com/chnhideyoshi/561079/o_QQ%e6%88%aa%e5%9b%be20140316214407.jpg" class="desc_img" style="width:120px;height 阅读全文
posted @ 2014-03-16 21:45 Jumanco&Hide 阅读(13622) 评论(0) 推荐(8) 编辑