JS算法与数据结构

Posted 木之子梦之蝶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)

 

以上是关于JS算法与数据结构的主要内容,如果未能解决你的问题,请参考以下文章

JS数据结构与算法-队列

学习JS 数据结构与算法笔记

数据结构与算法--栈(Stack)--JS

数据结构与算法--集合(Set)--JS

JS数据结构与算法-栈结构

前端项目Javascript Algorithms:使用 JS 实现经典算法与数据结构