摘要: 程序员面试、算法研究、编程艺术、红黑树、数据挖掘5大经典原创系列集锦与总结作者:July--结构之法算法之道blog之博主。时间:2010年10月-2012年11月。出处:http://blog.csdn.net/v_JULY_v。声明:版权所有,侵犯必究。前言 开博已过24个月,回首这24个月,发现自己在本blog上着实花费了巨大的时间与精力,写的东西可能也够几本书的内容了。希望我真真正正的为读者提供了实实在在的价值与帮助。 下面,敬请观赏。有任何问题,欢迎随时不吝指正(同时,若你也能帮助blog内留言的任何朋友的问题,欢迎你随时不吝分享&回复,我们一起讨论,互帮互助,谢谢)。无私分 阅读全文
posted @ 2013-06-21 10:47 Heisenbug 阅读(205) 评论(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 阅读(3399) 评论(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://gushuizerotoone.iteye.com/blog/7457311.stl vector list deque的区别 http://www.iteye.com/wiki/topic/732365 使用区别: 1 如果你需要高效的随即存取,而不在乎插入和删除的效率,使用vector ,支持[] 2 如果你需要大量的插入和删除,而不关心随即存取,则应使用list ,不支持[] 3 如果你需要随即存取,而且关心两端数据的插入和删除,则应使用deque,deque是vector和list的结合 2.vector的内存管理机制: http://blog.sina.co... 阅读全文
posted @ 2013-06-21 10:27 Heisenbug 阅读(162) 评论(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 阅读(292) 评论(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) 编辑