A*算法 简介 A*算法是最流行也是最强大的问题解决(problem-solving)算法之一。它是一个全局搜索算法,可以被用于解决一般问题,包括寻路。 全局搜索算法可以大概分成深度优先和广度优先两种。深度优先算法会先深入一条路径直到尽头,而广度优先会在每一步都穷举所有的可能,然后才进入下一步运算。单纯的深度优先或者广度优先算法的问题在于算法复杂度会很快随着地图上结点数量的增加而迅速增长(O(n2))。 A*算法的原理是在搜寻过程中的每一步都估计一个评分,然后选择一个最优的结点进行下一步运算;如果最终找不到路径,就返回到上一级结点,选择下一个最优的结点继续,直到达到目的结点为止。