摘要: UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)继承、实现、依赖、关联、聚合、组合的联系与区别分别介绍这几种关系:继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系;在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性;实现指的是一个class类实现interface接口(可以是多个)的功能;实现是类与接口之间最常见的关系;在Java中此类关系通过关键字implements明确标识,在设计时一般没有争议性;依赖可以简单的理解,就是一个类A使用到了另一个类B 阅读全文
posted @ 2013-09-06 12:07 Heisenbug 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 转自:http://www.felix021.com/blog/read.php?2040源于这两篇文章: http://blog.csdn.net/ggggiqnypgjg/article/details/6645824http://zhuhongcheng.wordpress.com/2009/08/02/a-simple-linear-time-algorithm-for-finding-longest-palindrome-sub-string/这个算法看了三天,终于理解了,在这里记录一下自己的思路,免得以后忘了又要想很久- -.首先用一个非常巧妙的方式,将所有可能的奇数/偶数长度的回 阅读全文
posted @ 2013-08-07 11:43 Heisenbug 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 转:http://www.cnblogs.com/buptLizer/archive/2012/04/12/2444565.html这个问题来自一个面试题。给两个文件,其中一个文件存在一万行左右的文本,将所有数据以行为元素进行排序,输出到文件2中。拿到这个题,一看数据量大约一万行,内存应该没问题,感觉直接调用库函数qsort,写个cmp函数就很容易搞定,没想到调试程序发现了一个小问题。分析程序代码: 1 const int MAXLINE = 100; 2 const int MAXLEN = 256; 3 int mycmp(const void *p1, const void *p2) 4 阅读全文
posted @ 2013-06-21 10:41 Heisenbug 阅读(1397) 评论(0) 推荐(0) 编辑
摘要: 在10M的源码中查找内存泄露。这个是网上随便看的一个面试题,看到博主写的解法,提到一个钩子函数,我连什么是钩子函数都不知道,人家都能想到用这个方法来解决,感觉自己太龊了,如果面试中问到这种题,肯定挂了。下面先介绍下钩子函数。摘至网上:钩 子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到 控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。对每种类型的钩子由系统来维护一个钩子 链,最近安装的钩子放在链的开始,而最先安装的钩子放在最后,也就是后加入 阅读全文
posted @ 2013-06-21 10:34 Heisenbug 阅读(3398) 评论(0) 推荐(0) 编辑
摘要: 最基本:虚函数,quick sort,三次握手 ok,进程通信1.虚函数 作用:实现动态联编,即在程序执行期间动态的选择合适的成员函数。 封装、继承和多态。2.快排 void quickSort(int l,int r) { if(lb[j]) {++j;} else {++i;} } }12.//最大子矩阵和 m[N][N]13.//链表快排15.分配一个大小为3的string和分配一个大小为1000的string,时间是一样的吗? 我把这个题放到 了算法群里,让大牛们讨论,结论是相同的,因为STL 给string预分配的大小为1024个字节,所以两者时间一样,但是如果超过这个范围, 我个人 阅读全文
posted @ 2013-06-21 10:33 Heisenbug 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 转载 http://blog.csdn.net/dongfengsun/article/details/1541926今天去9City笔试才发现很多基本的东西都忘记了,以后面试前要看看这篇文章了!唉,老了!①链表反转单向链表的反转是一个经常被问到的一个面试题,也是一个非常基础的问题。比如一个链表是这样的: 1->2->3->4->5 通过反转后成为5->4->3->2->1。最容易想到的方法遍历一遍链表,利用一个辅助指针,存储遍历过程中当前指针指向的下一个元素,然后将当前节点元素的指针反转后,利用已经存储的指针往后面继续遍历。源代码如下:stru 阅读全文
posted @ 2013-06-21 10:26 Heisenbug 阅读(291) 评论(0) 推荐(0) 编辑
摘要: 转载:http://gushuizerotoone.iteye.com/blog/737780注意时间复杂度 1.给出一个数列,找出连续相加最大的和 方法:(1)O(n) 一次扫描,如果sum<0, sum = 0. 英文数据结构书p23 (2)O(nlogn) devide and conqure 左右两边分别找最大,合并后的值,看看最后左、右、合并三个哪个最大 英文数据结构书p21 ================================================================= 2.二分查找 O(logN)整个数列已经之前排过序才能二分查找。每次比较 阅读全文
posted @ 2013-06-21 10:22 Heisenbug 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 原文地址:http://www.cnblogs.com/jy02414216/archive/2012/08/10/2633071.html 在算法分析中,当一个算法中包含递归调用时,其时间复杂度的分析会转化为一个递归方程求解。实际上,这个问题是数学上求解渐近阶的问题,而递归方程的形式多种多样,其求解方法也是不一而足,比较常用的有以下四种方法:(1)代入法(Substitution Method)代入法的基本步骤是先推测递归方程的显式解,然后用数学归纳法来验证该解是否合理。(2)迭代法(Iteration Method)迭代法的基本步骤是迭代地展开递归方程的右端,使之成为一个非递归的和式,然后 阅读全文
posted @ 2013-03-24 00:44 Heisenbug 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 转:http://www.cnblogs.com/huangxincheng/archive/2012/11/04/2754059.html第一篇我们做了一个简单的页面广度优先来抓取url,很显然缺点有很多,第一:数据结构都是基于内存的,第二:单线程抓取速度太慢,在实际开发中肯定不会这么做的,起码得要有序列化到硬盘的机制,对于整个爬虫架构来说,构建好爬虫队列相当重要。 先上一幅我自己构思的架构图,不是很完善,算是一个雏形吧。一:TODO队列和Visited集合 在众多的nosql数据库中,mongodb还是很不错的,这里也就选择它了,做集群,做分片轻而易举。二:中央处理器 群架,斗殴都是... 阅读全文
posted @ 2012-12-25 11:46 Heisenbug 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 转:http://www.cnblogs.com/huangxincheng/archive/2012/11/02/2751977.html前段时间做一个产品,盈利方式也就是卖数据给用户,用wpf包装一下,当然数据提供方是由公司定向爬虫采集的,虽然在实际工作中没有接触这一块,不过私下可以玩一玩,研究研究。 既然要抓取网页的内容,肯定我们会有一个startUrl,通过这个startUrl就可以用广度优先的方式遍历整个站点,就如我们学习数据结构中图的遍历一样。既然有“请求网页”和“解析网页”两部分,在代码实现上,我们得需要有两个集合,分别是Todo和Visited集合,为了简单起见,我们从单机版. 阅读全文
posted @ 2012-12-10 19:23 Heisenbug 阅读(183) 评论(0) 推荐(0) 编辑