算法
mark_yueye
热衷于技术提升,热爱编程。
展开
-
Boyer-Moore算法
1、概述在用于查找子字符串的算法当中,BM(Boyer-Moore)算法是目前相当有效又容易理解的一种,一般情况下,比KMP算法快3-5倍。BM算法在移动模式串的时候是从左到右,而进行比较的时候是从右到左的。常规的匹配算法移动模式串的时候是从左到右,而进行比较的时候也是是从左到右的,基本框架是:[cpp]view plaincopyj = 0; w转载 2013-11-24 16:45:10 · 734 阅读 · 0 评论 -
自动抽取新闻网页中的主要内容
抽取网页中的主要内容,是文本挖掘预处理中一个很头疼的问题。但是现在一切都不是问题。 String content = ArticleExtractor.INSTANCE.getText(new URL("https://www.google.com.hk/#newwindow=1&q=restlet+java.net.socketexception+bro...2013-11-29 22:26:41 · 384 阅读 · 0 评论 -
树的种类
二叉树 二叉查找树(BST) 笛卡尔树 MVP树 Top tree T树 自平衡二叉查找树 AA树 AVL树 左倾红黑树 红黑树 替罪羊树 伸展树 树堆 节点大小 平衡树 B树 B+树 B*树 ...2013-11-11 22:40:20 · 261 阅读 · 0 评论 -
前缀树
在计算机科学中,trie,又称前缀树, 是一种有序树,用于保存关联数组,其中的键通常是字符串。与二叉查找树不同,键不是直接保存在节点中,而是由节点在树中的位置决定。一个节点的所有子孙都 有相同的前缀,也就是这个节点对应的字符串,而根节点对应空字符串。一般情况下,不是所有的节点都有对应的值,只有叶子节点和部分内部节点所对应的键才有 相关的值。 Trie 这个术语来自于 retrieval。...2013-11-11 22:36:23 · 112 阅读 · 0 评论 -
排序算法
排序算法有很多,所以在特定情景中使用哪一种算法很重要。为了选择合适的算法,可以按照建议的顺序考虑以下标准: (1)执行时间 (2)存储空间 (3)编程 对于数据量较小的情形,(1)(2)差别不大,主要考虑(3);而对于数据量大的,(1)为首要。 主要排序法有: 一、冒泡(Bubble)排序——相邻交换 二、选择排序——每次最小/大排在相应的位置 三、插入...2013-11-10 12:28:48 · 87 阅读 · 0 评论 -
Mahout推荐算法之SlopOne
Mahout推荐算法之SlopOne原创 2014-10-11 09:35:27 · 3097 阅读 · 0 评论 -
网页正文提取
目前互联网上公布出来的正文提取算法,大家可以综合比较下,一起来测试下哪个更好用。 词网--北京词网科技有限公司http://demo.cikuu.com/cgi-bin/cgi-contex 猎兔网页正文提取 http://www.lietu.com/extract/ PHP版网页正文提取http://www.woniu.us/get_content_demo/ 网页正文提取分析(DEMO) ht转载 2013-11-11 17:40:32 · 2486 阅读 · 0 评论 -
桶排序
桶排序 (Bucket sort)或所谓的箱排序,是一个排序算法,工作的原理是将阵列分到有限数量的桶子里。每个桶子再个别排序(有可能再使用别的排序算法或是以递回方式继续使用桶排序进行排序)。桶排序是鸽巢排序的一种归纳结果。当要被排序的阵列内的数值是均匀分配的时候,桶排序使用线性时间(Θ(n))。但桶排序并不是 比较排序,他不受到 O(n log n) 下限的影响。 例如要对大小为[1转载 2013-11-11 17:39:44 · 744 阅读 · 0 评论 -
树
二叉树 二叉查找树(BST) 笛卡尔树 MVP树 Top tree T树 自平衡二叉查找树 AA树 AVL树 左倾红黑树 红黑树 替罪羊树 伸展树 树堆 节点大小平衡树 B树 B+树 B*树 B原创 2013-11-10 21:54:06 · 904 阅读 · 0 评论 -
动态规划
动态规划本文介绍了动态规划的基本思想和基本步骤,通过实例研究了利用动态规划设计算法的具体途径,讨论了动态规划的一些实现技巧,并将动态规划和其他一些算法作了比较,最后还简单介绍了动态规划的数学理论基础和当前最新的研究成果。引言——由一个问题引出的算法考虑以下问题[例1]最短路径问题现有一张地图,各结点代表城市,两结点间连线代表道路,线上数字表示城市间的距离。如图1所示,试找出从结原创 2013-11-10 19:05:42 · 1662 阅读 · 0 评论 -
Hash函数
简介哈稀函数按照定义可以实现一个伪随机数生成器(PRNG),从这个角度可以得到一个公认的结论:哈希函数之间性能的比较可以通过比较其在伪随机生成方面的比较来衡量。一些常用的分析技术,例如泊松分布可用于分析不同的哈希函数对不同的数据的碰撞率(collision rate)。一般来说,对任意一类的数据存在一个理论上完美的哈希函数。这个完美的哈希函数定义是没有发生任何碰撞,这意味着没有出现转载 2013-11-25 12:42:26 · 971 阅读 · 0 评论 -
Aho-Corasick算法学习
1、概述Aho-Corasick自动机算法(简称AC自动机)1975年产生于贝尔实验室。该算法应用有限自动机巧妙地将字符比较转化为了状态转移。此算法有两个特点,一个是扫描文本时完全不需要回溯,另一个是时间复杂度为O(n),时间复杂度与关键字的数目和长度无关。好了,我们先看下最原始的多模式匹配算法:主串T,n=strlen(T)。模式串Pi mi = strlen(pi)转载 2013-11-24 16:46:16 · 736 阅读 · 0 评论 -
前缀树
在计算机科学中,trie,又称前缀树,是一种有序树,用于保存关联数组,其中的键通常是字符串。与二叉查找树不同,键不是直接保存在节点中,而是由节点在树中的位置决定。一个节点的所有子孙都有相同的前缀,也就是这个节点对应的字符串,而根节点对应空字符串。一般情况下,不是所有的节点都有对应的值,只有叶子节点和部分内部节点所对应的键才有相关的值。Trie 这个术语来自于 retrieval。根据词源学,t原创 2013-11-10 22:34:22 · 942 阅读 · 0 评论 -
B+树
B+树B+ 树是一种树数据结构,通常用于数据库和操作系统的文件系统中。B+ 树的特点是能够保持数据稳定有序,其插入与修改拥有较稳定的对数时间复杂度。B+ 树元素自底向上插入,这与二叉树恰好相反。B+ 树在节点访问时间远远超过节点内部访问时间的时候,比可作为替代的实现有着实在的优势。这通常在多数节点在次级存储比如硬盘中的时候出现。通过最大化在每个内部节点内的子节点的数目减少树的高度,平衡操作原创 2013-11-10 21:58:02 · 835 阅读 · 0 评论 -
梯度下降法
梯度下降法,基于这样的观察:如果实值函数 在点 处可微且有定义,那么函数 在 点沿着梯度相反的方向 下降最快。因而,如果对于 为一个够小数值时成立,那么 。考虑到这一点,我们可以从函数 的局部极小值的初始估计 出发,并考虑如下序列 使得因此可得到如果顺利的话序列 收敛到期望的极值。注意每次迭代步长 可以改变。右侧的图片示例了这一过程,这里假设原创 2013-11-10 21:36:17 · 823 阅读 · 0 评论 -
维特比算法
维特比算法维特比算法(Viterbi algorithm)是一种动态规划算法。它用于寻找最有可能产生观测事件序列的-维特比路径-隐含状态序列,特别是在马尔可夫信息源上下文和隐马尔可夫模型中。术语“维特比路径”和“维特比算法”也被用于寻找观察结果最有可能解释相关的动态规划算法。例如在统计句法分析中动态规划算法可以被用于发现最可能的上下文无关的派生(解析)的字符串,有时被称为“维特比分析”。原创 2013-11-10 21:31:17 · 1610 阅读 · 0 评论 -
分治法
分治法简介对于一个规模为n的问题,若该问题可以容易地解决(比如说规模n较小)则直接解决,否则将其分解为k个规模较小的子问题,这些子问题互相独立且与原问题形式相同,递归地解这些子问题,然后将各子问题的解合并得到原问题的解。这种算法设计策略叫做分治法。分治法的基本思想任何一个可以用计算机求解的问题所需的计算时间都与其规模有关。问题的规模越小,越容易直接求解,解题所需的计算时间也越少。例原创 2013-11-10 21:22:48 · 1014 阅读 · 0 评论 -
排序算法
排序算法有很多,所以在特定情景中使用哪一种算法很重要。为了选择合适的算法,可以按照建议的顺序考虑以下标准: (1)执行时间 (2)存储空间 (3)编程 对于数据量较小的情形,(1)(2)差别不大,主要考虑(3);而对于数据量大的,(1)为首要。 主要排序法有: 一、冒泡(Bubble)排序——相邻交换 二、选择排序——每次最小/大排在相应的位原创 2013-11-09 15:33:43 · 1061 阅读 · 0 评论 -
Prefix tree
Prefix treeThe trie, or prefix tree, is a data structure for storing strings or other sequences in a way that allows for a fast look-up. In its simplest form it can be used as a list of keywords or...2013-12-08 11:38:57 · 124 阅读 · 0 评论