grep 由于内置高效的字符串搜索算法,兼容各种风格的正则,且功能众多,有着 linux 下字符串处理三剑客之一的称号,但是到了如今的大数据/分布式时代,这种单机时代的工具显得有些廉颇老矣。。。 1、需求背景 我们...
分类:
其他好文 时间:
2014-09-11 04:33:02
阅读次数:
670
深度优先搜索算法(depth first search),是一个典型的图论算法。所遵循的搜索策略是尽可能“深”地去搜索一个图。算法思想是: 对于新发现的顶点v,如果它有以点v为起点的未探测的边,则沿此边继续探测下去。当顶点v的所有边都已被探寻结束,则回溯到到达点v的先辈节点。以相同方法一直回溯到源....
分类:
其他好文 时间:
2014-09-07 15:55:45
阅读次数:
208
开宗明义
学算法的一个目的是为了用,既然是“为了用”就要有“应用”的学法,本文带你从”应用“的角度来启发你怎样学习遗传算法。
遗传算法的层次定位
简单看,遗传算法属于搜索算法,那搜索算法有哪些呢?
枚举搜索(及遍历所有的可能找到问题的解)随机化搜索(从概率的角度进行优化,先随机产生一个较为接近答案的点,以改点为基础进行搜索),随机化搜索是优化的枚举搜索 启发...
分类:
其他好文 时间:
2014-09-05 21:10:42
阅读次数:
222
爬山算法爬山算法是一种简单的贪心搜索算法,该算法每次从当前解的临近解空间中选择一个最优解作为当前解,直到达到一个局部最优解。爬山算法实现很简单,其主要缺点是会陷入局部最优解,而不一定能搜索到全局最优解。如下图所示:假设C点为当前解,爬山算法搜索到A点这个局部最优解就会停止搜索,因为在A点无论向那个方...
分类:
其他好文 时间:
2014-08-19 22:23:05
阅读次数:
442
深度优先搜索算法(Depth First Search),是搜索算法的一种。是沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所有边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其中一个作为源节...
分类:
其他好文 时间:
2014-08-19 18:29:35
阅读次数:
278
1. 二分搜索详见笔者博文:二分搜索的那些事儿,非常全面2. 矩阵二分搜索(1) 矩阵每行递增,且下一行第一个元素大于上一个最后一个元素(2) 矩阵每行递增,且每列也递增3. DFS 深度优先搜索适用场景:(1) 输入数据:如果是 递归数据结构(如单链表、二叉树),则一定可以使用DFS(2) 求解目...
分类:
其他好文 时间:
2014-08-19 16:12:34
阅读次数:
207
这是做的第一道BFS,很基础很简单的题目广度优先搜索算法如下:(用QUEUE)(1) 把初始节点S0放入Open表中;(2) 如果Open表为空,则问题无解,失败退出;(3) 把Open表的第一个节点取出放入Closed表,并记该节点为n;(4) 考察节点n是否为目标节点。若是,则得到问题的解,成功...
分类:
其他好文 时间:
2014-08-09 02:32:26
阅读次数:
307
随着移动终端的普及,很多应用都基于LBS功能,附近的某某(餐馆、银行、妹纸等等)。 基础数据中,一般保存了目标位置的经纬度;利用用户提供的经纬度,进行对比,从而获得是否在附近。 目标: 查找附近的XXX,由...
分类:
其他好文 时间:
2014-07-31 00:13:26
阅读次数:
587
在主流的商用程序语言中(Java和C#)都是使用根搜索算法(GCRootsTracing)判断对象是否存活的。这个算法的基本思路:通过一系列的名为“GCRoots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链(ReferenceChain),当一个对象到GCRoots没有任何引用链相..
分类:
其他好文 时间:
2014-07-29 16:00:20
阅读次数:
187