
algorithms/recommond
turkeyzhou
某互联网公司,从事服务器后台开发。
展开
-
最大公约数和最小公倍数
/** * 求最大公约数和最小公倍数 */ public class Convention { /** * 求两数的最大公约数 */ int divisor(int m,int n){ if(m%n==0){原创 2008-02-19 19:05:00 · 660 阅读 · 0 评论 -
B 树、B- 树、B+ 树、B* 树
B 树、B- 树、B+ 树、B* 树转载 2011-04-06 17:32:00 · 790 阅读 · 0 评论 -
KMP字符串匹配算法 通俗理解
我们从一个普通的串的模式匹配算法开始讲起,这样你才能更深入的了解KMP算法及其优点。咱们先来看看普通的串的模式匹配算法是怎么进行比较的主串 (S) a b a b c a b c a c b a b 子串 (T)a b c a c (子串又被称为模式串原创 2010-06-10 12:28:00 · 636 阅读 · 0 评论 -
KNN最近邻基于欧几里德距离的JAVA算法实现
本算法只适合学习使用,可以大致了解一下KNN算法的原理。算法作了如下的假定与简化处理:1.小规模数据集2.假设所有数据及类别都是数值类型的3.直接根据数据规模设定了k值4.对原训练集进行测试KNN实现代码如下:[java] view plaincopyprint?package KNN; /** * KNN结点类,用来存储最近邻的k原创 2012-10-07 02:49:01 · 9001 阅读 · 2 评论 -
贝叶斯的JAVA分类器实现
注:本算法的实现仅仅适用于小规模数据集的实验与测试,不适合用于工程应用算法假定训练数据各属性列的值均是离散类型的。若是非离散类型的数据,需要首先进行数据的预处理,将非离散型的数据离散化。算法中使用到了DecimalCaculate类,该类是java中BigDecimal类的扩展,用于高精度浮点数的运算。该类的实现同本人转载的一篇博文:对BigDecimal常用方法的归类中的Arit原创 2012-10-07 02:47:13 · 14626 阅读 · 4 评论 -
希腊字母大全
1 Α α alpha a:lf 阿尔法2 Β β beta bet 贝塔3 Γ γ gamma ga:m 伽马4 Δ δ delta delt 德尔塔5 Ε原创 2012-10-10 14:48:56 · 3610 阅读 · 0 评论 -
分类模型的性能评估——以SAS Logistic回归为例(1): 混淆矩阵
Posted on 2008/12/25 by 胡江堂跑完分类模型(Logistic回归、决策树、神经网络等),我们经常面对一大堆模型评估的报表和指标,如Confusion Matrix、ROC、Lift、Gini、K-S之类(这个单子可以列很长),往往让很多在业务中需要解释它们的朋友头大:“这个模型的Lift是4,表明模型运作良好。——啊,怎么还要解释ROC,ROC如何如何,表明模型表现转载 2012-10-18 16:29:36 · 6280 阅读 · 0 评论 -
分类模型的性能评估——以SAS Logistic回归为例(2): ROC和AUC
.ROC上回我们提到,ROC曲线就是不同的阈值下,以下两个变量的组合(如果对Sensitivity和Specificity两个术语没有概念,不妨返回,《分类模型的性能评估——以SAS Logistic回归为例(1): 混淆矩阵》,强烈建议读者对着看):Sensitivity(覆盖率,True Positive Rate)1-Specificity (Sp转载 2012-10-18 20:07:25 · 13301 阅读 · 0 评论 -
拜占庭将军问题
一。拜占庭将军算法的背景:对于系统坏掉的风险,可以这样假设:我们的操作员可能会误操作、可能会被贿赂或背叛,系统本身可能就有木马程序,系统可能会被黑客或病毒占领,我们自己开发的系统可能有漏洞,我们的开发人员可能会留下后门,这些都可以导致系统坏掉。因此,在这些假设在变成可能的残酷现实中,生存技术是应真正被采用的一种信息安全技术。 入侵容忍体系就是生存技术中的核心。如果我们的网络和系统学会生存,转载 2012-10-23 14:17:46 · 2781 阅读 · 0 评论 -
关于逻辑回归中的Enter以及stepwise的区别
Enter:所有X一次性全部进入Forward:X一个一个进,每次进入P-value最小的X,直到未进入的X都不significantBackward:所有的X先一次性进入,然后一个一个剔除,每次剔除P-value最大的X,直到保留的X全都significantStepwise:X一个一个进,但是进入新的X以后,会重新审查所有已进入X的P-value,如果进入新的X导致原来的X的P-v原创 2012-11-01 14:49:34 · 9198 阅读 · 1 评论 -
关于反码取值的一些思考
#include int main(void){ unsigned char a = 0xa5; printf("%d\n",~a); char b = ~a; printf("%d\n",b); unsigned char c = ~a; printf("%d\n",c); retu转载 2013-02-21 00:51:29 · 936 阅读 · 0 评论 -
清晰的KMP匹配算法
作者: 阮一峰日期: 2013年5月 1日字符串匹配是计算机的基本任务之一。举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"?许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明者命名,起头的那个K就是著名科学家Don转载 2013-05-05 00:14:50 · 942 阅读 · 0 评论 -
Boyer-Moore算法字符串查找算法
作者: 阮一峰日期: 2013年5月 3日上一篇文章,我介绍了KMP算法。但是,它并不是效率最高的算法,实际采用并不多。各种文本编辑器的"查找"功能(Ctrl+F),大多采用Boyer-Moore算法。Boyer-Moore算法不仅效率高,而且构思巧妙,容易理解。1977年,德克萨斯大学的Robert S. Boyer教授和J Strother Mo转载 2013-05-05 00:45:10 · 1751 阅读 · 0 评论 -
hash算法
散列算法长期以来一直在计算机科学中大量应用,随着现代密码学的发展,单向散列函数已经成为信息安全领域中一个重要的结构模块,我们有理由深入研究其设计理论和应用方法。原创 2010-11-21 22:34:00 · 1034 阅读 · 0 评论 -
一致性 hash 算法( consistent hashing )
一致性hash的单调性和平衡性转载 2010-11-22 02:00:00 · 910 阅读 · 0 评论 -
字母全排列快速算法C代码
全排列,比如字母ABC,所有排列有A ,AB,AC,ABC,ACB,B,BA,BC,BAC,BCA,C,CA,CB,CAB,CBA。//原理是插入, 在一个字符串的所有位置插入新字符.//如: AB 插入C , 位置有 1A2B3, 插入后形成 CAB ACB ABCchar *AllList(char *str, int *pNum)...{ int i, j, k, n;原创 2008-02-26 12:23:00 · 1240 阅读 · 0 评论 -
oracle PL/SQL学习
我们开始学习PL/SQLPL/SQl的好处在于降低了网络开销,别的数据库执行四条sql语言的话,在网络上要发送四次语句,而oracle可以把多条sql语句写到一段PL/SQl快中,从而降低了网络开销,以高了网络程序的性能;PL/SQl语句的基本结构如下:DECLARE /**定义了变量常量定义的部分*/BEGIN/**执行主题*/EXCEPTION原创 2008-05-13 22:44:00 · 901 阅读 · 0 评论 -
迷宫算法
import java.util.Stack; public class FindPath { private static final int wid = 8; private static final int hei = 8; private Stack stack = new Stack(); /** * @param转载 2008-08-26 01:28:00 · 816 阅读 · 0 评论 -
收藏:牛人的回字算法
static void printbox(int num){ for (int i = 0; i { for (int j = 0; j { Console.Write(Math.Max(Math.Abs(i - num + 1), Math.Abs(j - num + 1)) + 1); } Conso原创 2008-08-26 23:21:00 · 1109 阅读 · 0 评论 -
JDK源代码分析聚集篇-------TreeMap上(红黑树的研究);
首先我们来分析一个红黑树:红黑树的几个特征和性质:1. 每个结点或者为黑色或者为红色。 2. 根结点为黑色。 3. 每个叶结点(实际上就是NULL指针)都是黑色的。 4. 如果一个结点是红色的,那么它的两个子节点都是黑色的(也就是说,不能有两个相邻的红色结点)。 5. 对于每个结点,从该结点到其所有子孙叶结点的路径中所包含的黑色结点数量必须相同。然后我们可以得出几点推论:1)加入两个兄弟同为黑色,原创 2008-11-04 20:25:00 · 2426 阅读 · 1 评论 -
JDK源代码分析聚集篇-------TreeMap下(不按先后,只看谁牛逼,jdk中的红黑树);
在上一节的分析中,我们已经对红黑色的实现和操作进行了分析,我们可以看见红黑树是一颗高度平衡的数;TreeMap的实现也是利用的红黑树,我们来看代码:在TreeMap中包含着一个根结点:private transient Entry root = null;这个Entry代码如下:static final class Entry implements Map.Entry { K key原创 2008-11-05 18:32:00 · 1698 阅读 · 0 评论 -
组合问题!
现在有n粒骰子,要求打印出这n骰子的所有的组合数字,如122 和221视为同一组:import java.util.HashMap;import java.util.Map;public class AppTest { public static void main(String[] args) { int[][] result=compute(5); println(result原创 2009-03-07 12:46:00 · 606 阅读 · 0 评论 -
HtmlCleanner
原文地址:http://blog.youkuaiyun.com/shendl/archive/2009/10/27/4735160.aspx版权申明:所有版权归原作者所有 介绍 今天给大家推荐一款最好的网页解析类库—HtmlCleaner。至少是目前为止最好的Java解析库。 与HtmlCleaner结缘是在年初的时候,因为一项工作需要解析Html页面,所以我在网上遍转载 2009-10-28 12:50:00 · 1596 阅读 · 0 评论 -
选择排序,插入排序,冒泡排序
选择排序,插入排序,冒泡排序关键字: 良葛格的排序算法 Java代码 <a title="复制代码" onclick="function onclick(){dp.sh.Toolbar.CopyToClipboard(this);return false;}" href="http://love2java.javaeye.com/blog/192028#">原创 2009-12-03 01:06:00 · 675 阅读 · 0 评论 -
算法的时间复杂度分析
算法的执行时间依赖于具体的软硬件环境,所以,不能用执行时间的长短来衡量算法的时间复杂度,而要通过基本语句执行次数的数量级来衡量。 求解算法的时间复杂度的具体步骤是: ⑴ 找出算法中的基本语句; 算法中执行次数最多的那条语句就是基本语句,通常是最内层循环的循环体。 ⑵ 计算基本语句的执行次数的数量级; 只需计算基本语句执行次数的数量级,这就意味着只要保证基本语句执行次数的函转载 2010-05-18 23:29:00 · 5105 阅读 · 0 评论 -
一个小的分页计算器
一个小的分页计算器,比较少的代码去判断页面越界以及向后延伸原创 2010-09-02 23:46:00 · 1042 阅读 · 0 评论 -
智能推荐系统开发中的十个关键注意点
原文:http://www.resyschina.com/2013/03/recommendation-keypoint.html作者:陈运文 博士,盛大智能推荐团队负责人亚马逊的CEO Jeff Bezos曾经说过,他的梦想是“如果我有100万个用户,我就要为他们做100万个亚马逊网站”。智能推荐系统承载的就是这个梦想,即通过数据挖掘技术,为每一个用户实现个性化的推荐结果,让每个转载 2013-07-09 09:17:20 · 1696 阅读 · 0 评论