- 博客(27)
- 收藏
- 关注
原创 设计模式之工厂方法模式
1,定义 定义一个用于创建对象的接口,让子类决定实例化哪一个类。 2,用途 工厂方法模式是new一个对象的替代品,所以在所有需要生成对象的地方都可以使用。 工厂模式屏蔽了产品类,产品类的实现如何变化,调用者都不关心,只需要关心产品的接口,只要接口保持不变,系统中的上层模块就不会发生变化。 因为产品类的实例化工作是有工厂类负责的,一个产品对象具体由哪一个产品生成是由工厂类决定的。
2015-01-08 22:22:43 447
原创 设计模式之单例模式
1,定义(单例模式是什么) 单例模式要确保某一个类只有一个实例,而且自身会实例化,并且会向所有调用它的模块或系统提供这个实例。 2,用途(为什么使用单例模式) 1)单例模式在内存中只有一个实例,减少内存开支,减少系统性能开销,避免资源多重占用 2)单例模式可以在系统设置全局访问点,优化和共享资源访问。 3,用法(怎样使用单例模式)
2015-01-08 21:59:46 445
原创 【开卷有益】JAVA正则表达式模版
专业既然是机器学习,那工作肯定也是继续和数据打交道,那么问题来了,很多时候推荐算法和数据挖掘算法都是现成可用的,平台初建,重点还在数据过滤和抽取,怎样高效的抽取数据? 利用往常算法比赛中常用的字符串处理方法吗,omg,维护它是一个淡淡疼的忧伤。 那么,重点来了,正则表达式,干净利落。 模版如下: //step1,set reg string String r
2014-12-18 23:24:11 982
原创 周计划 11.11.2013
光棍节周记,也忒搞笑了。 本周要写一个爱尔兰这边的战棋游戏。最近卡在了evaluation,其实主要是不会玩这个棋,没经验。 另外,要完成一个安卓项目的个性化推荐算法,算法初具规模,但是另一个庞大的数据统计到底要不要加进去,比较纠结。 23.26了,睡觉。
2013-11-12 07:26:13 767
原创 prim和kruscal区别
1.二者都是计算最小生成树而生,毋庸置疑。 2.prim从点而生,kruscal从边而生,再次毋庸置疑。 3.二者稳定性,在比赛中,区别不大,但是,实际中,点一多,prim绝对卡爆。 这句话怎么理解呢,怎么会卡爆呢? 很简单,其实就是稀疏图和稠密图。 稀疏图(Sparse),1000000个点,只有6000个边,用prim开数组,建堆,跪求内存足够。。。 稠密图,点少边
2013-11-12 05:00:22 1858
原创 光棍节系列之最小生成树之prim
前段时间有写最小生成树,然后又写了几天的最短路径。 近日,光棍节。。。光棍啊。。。所谓最小生成树就是不能成双成对,只有最小, 今天POJ1258 联通n个farm,i到j和j到i相同,无向图,并且,各个点之间的权重已知。求最小数的权重之和。 首先建立一个数组low【i】用于储存找到的最小值,然后再用一个布尔数组做标兵,表示此点和之前已搜过。 随机选一点,从1开始即
2013-11-12 04:31:43 835
原创 贝叶斯,待续
贝叶斯涉及到的问题: 贝叶斯公式的初衷:逆概问题 最大似然和优先概率的结合分析,或者叫奥卡姆剃刀。 最小描述长度原则 :在对贝叶斯公式同时取对数后可见。 应用: 很多,包括错词分析,垃圾邮件过滤,文档分类,很多很多。 此文未完,夜降临了,跟朋友约好了要出去,不好爽约,具体文章都在自己的笔记本上写着,改天写完。 10、11、2013
2013-11-11 01:23:41 566
转载 背包九讲
下午做多重背包,好久没做了,突然发现条件卡不好了,特温习背包九讲,以前没有写博客的习惯,喜欢用日记本。现在既然开始了,就留下这个足迹。 来自 :http://blog.sina.com.cn/s/blog_8cf6e8d90100zldn.html P01: 01背包问题 题目 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解
2013-11-11 01:19:28 758
原创 周记,2013.11.1
最近在做最小生成树的相关算法。 java不给力,回头用C写。 好吧,基础的printf,cout,scanf,gets各种混乱。 半年没写C了就乱了。。。 按理说,当初写C没有用IDE,用UltraEdit一步一步,一个字母一个字母的写,要说基础不扎实?指针,数组,运算符,对我来说没有问题啊。。 回头想想,实际是基础语句的生疏导致了这些小问题,所谓逆水行舟,不进则退。语言这种东西,一段时
2013-11-02 05:40:37 484
转载 备用开发工作面试
http://blog.csdn.net/itcastcpp/article/details/13728859 [-] 无坚不摧完整项目深厚内功坚实基础锦上添花无限潜力写在最后 不久前,byvoid面阿里星计划的面试结果截图泄漏,引起无数IT屌丝的羡慕敬仰。看看这些牛人,NOI金牌,开源社区名人,三年级开始写Basic...在跪拜之余我们不禁要想,
2013-10-31 18:32:18 869
原创 ruby中的正则表达式
今天用脚本做数据分析,记录下ruby中的正则表达式,以备用 一般规则: /a/匹配字符a。 /\?/匹配特殊字符?。特殊字符包括^, $, ? , ., /, \, [, ], {, }, (, ), +, *. .匹配任意字符,例如/a./匹配ab和ac。 /[ab]c/匹配ac和bc,[]之间代表范围。例如:/[a-z]/ , /[
2013-10-30 23:53:25 759
原创 关于ACM中的最小生成树
最常见的最小生成树,无非就两种: prim kruscal。 两者皆为贪心思想,局部最优(或无限接近最优)以达到全局最优的效果。 很多人疑惑,到底什么是最小生成树 维基百科的定义链接: http://zh.wikipedia.org/wiki/最小生成树 定义很严谨,但是这个定义并不形象。其实最小生成树无非是把无向图转化为树结构的过程,在这个过程中存在一个从出发点遍历
2013-10-30 17:48:26 969
原创 最小公倍数 java
今天起床迟了,30多个小时的连续作战,睡个懒觉也无可厚非。。。 然后看到一个题目,一个很另类的记录整个求两个整数的最小公倍数的过程。于是小写了一下,发现过程中问题还不少,果然底层代码一段时间不写就生疏了。 先看两个简洁方法求最小公倍数 一最常用 两数之积 分别同时除以 两数,能同时除得整数的为公倍数,最小者为最小公倍数,当然,从最小数开始循环,第一个公倍数即为最小:
2013-10-30 02:37:04 1221 1
转载 伸展树( splay tree)
MiYu原创, 转帖请注明 : 转载自 ______________白白の屋 伸展树(Splay Tree)是AVL树不错的替代,它有以下几个特点: (1)它是二叉查找树的改进,所以具有二叉查找树的有序性。 (2)对伸展树的操作的平摊复杂度是O(log2n)。 (3)伸展树的空间要求、编程难度非常低。 提到伸展树,就不得不提到AVL树和Read-Black树
2013-10-26 22:37:01 799
原创 一天一天的充实。。。
有幸第一手取到了刚到学校图书馆的 数据结构玉算法(JAVA版) really happy~ 话说,今天是周六来着,不过都柏林没什么好玩的,还是蹲library好好修炼吧。。 3点去Trinity见Dr.James UCD 12/10/2013
2013-10-12 20:14:03 688
转载 推荐算法分类
1、Item based collective filtering 总结:物以类聚 很多网站的核心算法之一 原因:item的增长速度远小于user的增长速度 方法:离线计算item的相似度矩阵供线上使用 缺点:由于基于item的相似性,故推荐的item相似,缺乏多样性 2、user based collective filtering 总结:人以
2013-10-10 22:32:31 881
原创 再次细化的目标
今天研究了一天搜索算法。 看到一篇说搞算法的写不了工程代码,笑了笑,关掉了页面,继续做自己的事。 没有磨过的刀和磨过的刀砍柴的故事。 今天看了看系统架构师的介绍,看了很多神人,崇拜。 要熏陶多久啊。 感觉自己一步步走向自己想做的事,想要的梦想。 爱算法,爱生活。。。 无限美好。。。 UCD IRELAND 16.53 08/10/
2013-10-08 23:53:26 656
转载 POJ算法做题顺序
- -又一个长征,路漫漫。。。漫漫。。。漫漫 来自: http://blog.sina.com.cn/s/blog_90c5a1ad01013oax.html 初期: 一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. (4)递推. (5)构造
2013-10-08 17:42:40 929
转载 堆排序
堆排序,原址:http://hi.baidu.com/taozpwater/item/3995214cd22a94e6a4c0664c 堆排序简介 1、简介 1991年计算机先驱奖获得者、斯坦福大学计算机科学系教授罗伯特·弗洛伊德(Robert W.Floyd)和威廉姆斯(J.Williams)在1964年共同发明了著名的堆排序算法( Heap
2013-10-04 21:22:28 740
转载 字符串翻转
今天温习字符串翻转时发现的一片美文,用美形容,不过。 原址:http://blog.csdn.net/dlengong/article/details/7184244 在好多字符串处理中,旋转与移位是很常见到的,在大规模的数据处理中设计高效的算法是必须的 示例: 把字符串abcdefgh循环左移3位,变为defghabc 输入字符串str与移位数m,输出结果
2013-10-04 21:18:20 693
转载 KMP ALG NEXT method
void getNext(const char* pattern,int next[]) { next[0]= -1; int k=-1,j=0; while(pattern[j] != '/0') { if(k!= -1 && pattern[k]!= pattern[j]
2013-10-04 21:15:09 692
转载 快速排序
快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。 该方法的基本思想是: 1.先从数列中取出一个数作为基准数。 2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。 3.再对左右区间重复第二步,直到各区间只有一个数。 voi
2013-10-04 16:46:57 590
转载 应届生面试所需技术基础
技术基础(偏软件) 以下的内容描述了技术基础的几个方面,以及在这些方面,如何才能算是“基础扎实” 语言基础 语言的种类极多,不一一列举了。就语言本身而言,只是个工具而已,并不重要,不过它作为开发手段,承载了很多软件开发的思想。比如垃圾回收 机制、面向对象、异常处理机制等等,这些思想,在很多语言中都有体现,建议同学们对此做些了解。因为我只对C/C++比较熟悉,各大公司在招聘时候也比
2013-09-30 01:05:12 1132
转载 new在堆中的string和栈中的string引用指向内存不同
String str1 = new String("abc"); String str2 = "abc"; System.out.println(str1==str2); //false 创建了两个引用。创建了两个对象。两个引用分别指向不同的两个对象。 String str1 = "abc"; String str2 = new String("abc");
2013-09-30 00:09:43 1037
翻译 算法导论公开课对应章节(来自MIT)
SES # TOPICS READINGS L1 Administrivia Introduction Analysis of Algorithms, Insertion Sort, Mergesort Chapters 1-2 R1 Correctness of Algorithms Horner's rule
2013-09-29 06:48:01 1141
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人