随笔分类 -  算法实现

摘要:Rabin-Karp 字符串搜索算法 是一个相对快速的字符串搜索算法,它所需要的平均搜索时间是O(n).这个算法是建立在使用散列来比较字符串的基础上的。Rabin-Karp算法在字符串匹配中其实也不算是很常用,但它的实用性还是不错的,除非你的运气特别差,最坏情况下可能会需要O((n-m)*m)的运行时间(关于n,m的意义请看上篇)。平均情况下,还是比较好的。朴素的字符串匹配算法为什么慢?因为它太健... 阅读全文
posted @ 2010-04-15 16:25 貔貅 阅读(1023) 评论(0) 推荐(0)
摘要:散列函数(或散列算法,英语:Hash Function)是一种从任何一种数据中创建小的数字“指纹”的方法。该函数将数据打乱混合,重新创建一个叫做散列值的指纹。散列值通常用来代表一个短的随机字母和数字组成的字符串。好的散列函数在输入域中很少出现散列冲突。在散列表和数据处理中,不抑制冲突来区别数据,会使得数据库记录更难找到。散列函数的性质 所有散列函数都有如下一个基本特性:如果... 阅读全文
posted @ 2010-04-15 16:15 貔貅 阅读(1389) 评论(0) 推荐(0)
摘要:A*算法的C#实现 在游戏开发中,AI的最基本问题之一就是寻路算法或称路径规划算法,在三年前,我曾实现过基于“图算法”的最短路径规划算法,然而在游戏中,我们通常将地图抽象为有单元格构成的矩形,如:(本图源于这里)这个微型地图由3*3的单元格构成,当然,实际游戏中的地图通常比它大很多,这里只是给出一个示例。由于游戏地图通常由单元格构成,所以,基于“图算法̶... 阅读全文
posted @ 2009-11-23 15:55 貔貅 阅读(1816) 评论(0) 推荐(0)