JS算法与数据结构

一、寻路模式

1、举例说明

(1)比如玩游戏的时候,选定一个目标点,人物就会自动到达我们指定的目标点

(2)在地图上选定起点和终点,地图上就会自动给我们打出一条比较合理的路线(可能是最近的一条路线)

2、三种模式

(1)深度优先搜索

a定义:从起点找到相邻的连接点,再从相邻点继续寻找下一个相邻点,一直搜索到目标点

b特点:一层一层找线路,缺点:并没有办法找到最优路线

(2)广度优先搜索

a定义:像网状一样像四周扩散,从一个点向四周扩散,在从下一个点在像四周扩散

b特点:搜索面积大,性能低,要进行大量的计算

(3)启发式搜索

通过估价函数来模拟判断是否选择这个点。

a定义:与人类思想完全吻合,按照人类思想而设计

b特点:既要保证最优路径又要保证性能

三、估价函数

(1)f(n)  =  g(n) + h(n)
  f(n)是n节点的估价函数
  g(n)是初始点到n节点的实际代价
  h(n)是n节点到目标点的实际代价

(2)A*算法程序实现

  • open队列——排序估价函数
  • close队列——排除干扰节点
  • 查询相邻位置
  • 封装估价函数 f()  g()   h()
  • 设置父节点指针

 

(3)

原文地址:https://www.cnblogs.com/liumengdie/p/9087146.html