数据结构之图应用最小生成树最小生成树说白了就是用最少的边把所有的顶点连接起来。最小生成树是不唯一的,但是最小生成树满足边的数量比点的数量少1.最小生成树不关心边的长度也不需要找到最短的路径,而是要找到最少数量的边,创建最小生成树的算法与图的搜索算法几乎相同。下边的例子是基于深度优先搜索算法实现的,在...
分类:
其他好文 时间:
2014-12-18 16:30:10
阅读次数:
134
图的应用-搜索的实现图的搜索主要包括两种1个是深度优先搜索,一个是广度优先搜索。深度优先搜索顾名思义就是一直远离源搜索点,搜索下去,深度优先搜索的机制是有栈来实现的,广度优先搜索算法是由队列来实现的,正因为实现的机制不同,所以搜索的方式也不同。首先讲解一下深度优先搜索方法,首先找一个起始点,然后做三...
分类:
其他好文 时间:
2014-12-18 16:25:42
阅读次数:
239
在解决各种算法问题时,我们常常以O来表示这个算法的时间复杂度和空间复杂度随着数据规模大小的增长而增长的速率。通常,1s时间内可解出来的时间复杂度与数据规模的关系如表1-1。 表1-1 1s内基本时间复杂度 n的大小 1s内可以求出解的时间复杂度 10 n!(通常是一些搜索算法) 20 100 n³ ...
分类:
其他好文 时间:
2014-12-17 20:41:08
阅读次数:
136
参考自侯捷的《stl源码剖析》stl算法主要分为非可变序列算法(指不直接修改其所操作的容器内容的算法),可变序列算法(指可以修改它们所操作的容器内容的算法),排序算法(包括对序列进行排序和合并的算法、搜索算法以及有序序列上的集合操作),数值算法(对容器内容进行数值计算)。1.非可变序列算法stl中的...
分类:
编程语言 时间:
2014-12-15 23:17:43
阅读次数:
417
//指针在搜索算法中实例
//迷宫算法
//搜索最长用到的就是深度优先搜索和广度优先搜索
//深度优先搜索就像名字一样,对每一个道路一直搜索到底,
//为了防止思路,特别的设置了栈这种数据结构
//使得每次找到思路的时候还可以退出到出发点。
//
//
//广度优先搜索
//广度优先搜索就是利用队列性质先进先出的性质,把每次的搜索结果放入队列,
//排除思路等条件
//
/...
分类:
其他好文 时间:
2014-12-15 10:28:36
阅读次数:
194
搞了这么久发现自己到现在还不会启发式搜索ヾ(?`Д´?)所以今天正好趁着搜索练习题的风去搞了启发式搜索
A*搜索算法,俗称A星算法。这是一种在图形平面上,有多个节点的路径,求出最低通过成本的算法。常用于游戏中的NPC的移动计算,或在线游戏的BOT的移动计算上。
该算法像Dijkstra算法一样,可以找到一条最短路径;也像BFS一样,进行启发式的搜索。
在此算法中,如果以 g(n)...
分类:
其他好文 时间:
2014-12-15 09:04:27
阅读次数:
287
一:A*的介绍
A*算法是一种启发式搜索算法,就是在状态空间中的搜索对每一个搜索的位置进行评估,得到最好的位置,再从这个位置进行搜索直到目标。这样可以省略大量无畏的搜索路径,提到了效率。在启发式搜索中,对位置的估价是十分重要的。采用了不同的估价可以有不同的效果。
该算法可以用公式f(n)=g(n)+h(n)表示,其中 f(n) 是从初始点经由节点n到目标点的估价函数,g(n) 是在状态...
分类:
编程语言 时间:
2014-12-14 09:29:46
阅读次数:
305
优化算法入门系列文章目录(更新中): 1.模拟退火算法 2.遗传算法 遗传算法 ( GA , Genetic Algorithm ) ,也称进化算法 。 遗传算法是受达尔文的进化论的启发,借鉴生物进化过程而提出的一种启发式搜索算法。因此在介绍遗传算法前有必要简单的介绍生物进化知识。一.进化论知...
分类:
编程语言 时间:
2014-12-11 12:13:03
阅读次数:
274
BackGround:
做完LeetCode上的数独题目好长时间了,今天将做题时参考的Algorithm X 以及 Dancing Links 整理出来。话说理解算法+写出程序一共用了三天,智商果然余额不足。。。
介绍:
由于Dancing Links 是为了解决数独问题学习的,那就从数独问题下手,围绕数独问题展开对Algorithm X 和 Dancing Link...
分类:
其他好文 时间:
2014-12-10 16:18:58
阅读次数:
300
在角色扮演或即时战略游戏中,经常会将角色以最佳的方式走到指定地点。游戏场景的地面情况复杂,而且场面大,若采用盲目式搜索,例如盲目穷举法,则几乎要遍历整个场景,效率非常低,造成角色反应速度过慢,实践证明是一种不适合网络游戏寻路方法。而启发式搜索算法在障碍较少的情况下也显得效率过低。
DDA算法和Bresenham算法是游戏寻路中绘制直线的两种常用算法。
在列举这两算法之前,我先定义坐标的结构...
分类:
编程语言 时间:
2014-12-09 17:53:55
阅读次数:
330