• 【模板篇】A* 寻路算法


    上次在做k短路的时候说到了A*, 但是并没有仔细的研究A*寻路, 毕竟k短路中的A*也不怎么标准…

    A*寻路的过程网上还是有很多的, 讲得也很清楚, 不妨跟着里面的图示自己动手操作一下, 基本一遍就能理解的差不多, 再亲自写一遍代码就没啥太大问题咯~

    今天就实际动手写了写A*的寻路… 不过这么小一个程序却写了一个类, (其实是为了以后万一写个颓废的小程序寻路的时候可以直接继承2333

    写的栗子是非常基础的, 8向移动的01迷宫.
    其中这里h函数的选取只采用了非常low的euclid距离, 还有很多更好用的算法以后回去学习…
    而这么选取有时候就会出现很迷的走法, 可能会看心情优化.
    这个模板肯定还会再改的.

    因为不是交题, 所以效率并不是太重要, 这里就用了全STL的实现..
    不过效率还是可以顺手优化的, 于是就用了priority_queue来优化找最小的f的过程.
    然后就是map set vector了..

    没准可能还会尝试用别的语言实现下~

    代码包括后续的更新都会在github上..
    如果可能的话(比如看我可爱啊什么的), 可以去点个star啊~

    好的 现在放出github传送门
    就是这里啦, 快戳进去~

    如果有什么意见或建议欢迎提出来哦…

  • 相关阅读:
    Myeclipse10 + JBPM4.4 环境搭建图文教程
    关于ztree异步加载的问题(二)
    ztree学习之异步加载节点(一)
    【LeetCode】Search a 2D Matrix
    【LeetCode】Merge Sorted Array
    【LeetCode】Search for a Range
    一位阿里导师给大学生的忠告
    Java 基础
    java XML-RPC
    java web service
  • 原文地址:https://www.cnblogs.com/enzymii/p/8412097.html
Copyright © 2020-2023  润新知