代码改变世界

随笔档案-2012年09月

Linux系统编程概略

2012-09-17 21:22 by iamzhaiwei, 178 阅读, 收藏,
摘要: 基础知识文件IOint open(const char *pathname, int oflag, mode_t mode);int close(int fd);off_t lseek(int fd, off_t offset, int whence); // whence: SEEK_SET SEEK_CUR, SEEK_ENDssize_t read(int fd, void *buf, size_t nbytes);ssize_t write(int fd, const void *buf, size_t nbytes);fcntl高级IO非阻塞IO对一个描述符调用open或fcntl函 阅读全文

C++虚函数表汇总

2012-09-04 20:36 by iamzhaiwei, 220 阅读, 收藏,
摘要: 一般来说,对于开发者我们只需要知道虚函数的使用方法,以及虚函数表的存在即可。但面试时往往会遇到更细节的问题,比如让你实现一个虚函数机制,虽然不太实用,总归了解些底层知识也是件好事。但如果有人苦苦相逼一定要拿这个刷人,你就去骂他吧,你才是写编译器的,你们全家都是写编译器的。唉,我有些失态了...1. 虚函数与虚函数表基本知识这里有一篇介绍,只需看前两页,各种配图,很形象:http://dev.yesky.com/208/8061708.shtml这篇文章则更精练,只需看第一段就好:http://blog.csdn.net/jiangnanyouzi/article/details/3720807 阅读全文

C++虚函数表解析

2012-09-04 20:15 by iamzhaiwei, 155 阅读, 收藏,
摘要: 前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。 关于虚函数的使用方法,我在这里不做过多的阐述。大家可以看看相关的C++的书籍。在这篇文章中,我只想从虚函数的实现机制上面为大家一个清晰的剖析。当然,相同的文章在网上也出现过一些了,但我总感觉这些文章不是很容易阅读,大段大段的代码,没有. 阅读全文

数据挖掘——决策树算法

2012-09-02 19:22 by iamzhaiwei, 522 阅读, 收藏,
摘要: 决策树算法1、摘要 在前面两篇文章中,分别介绍和讨论了朴素贝叶斯分类与贝叶斯网络两种分类算法。这两种算法都以贝叶斯定理为基础,可以对分类及决策问题进行概率推断。在这一篇文章中,将讨论另一种被广泛使用的分类算法——决策树(decision tree)。相比贝叶斯算法,决策树的优势在于构造过程不需要任何领域知识或参数设置,因此在实际应用中,对于探测式的知识发现,决策树更加适用。2、决策树引导 通俗来说,决策树分类的思想类似于找对象。现想象一个女孩的母亲要给这个女孩介绍男朋友,于是有了下面的对话: 女儿:多大年纪了? 母亲:26。 女儿:长的帅不帅? 母亲:挺帅的。 女儿:收入高不? 母亲:不算很高 阅读全文

设计MP3搜索引擎

2012-09-02 18:44 by iamzhaiwei, 282 阅读, 收藏,
摘要: (百度)假设一个 mp3 搜索引擎收录了 2^24 首歌曲,并记录了可收听这些歌曲的 2^30 条 URL,但每首歌的 URL 不超过 2^10 个。系统会定期检查这些 URL,如果一个 URL 不可用则不出现在搜索结果中。现在歌曲名和 URL 分别通过整型的 SONG_ID 和 URL_ID 唯一确定。对该系统有如下需求:1) 通过 SONG_ID 搜索一首歌的 URL_ID,给出 URL_ID 计数和列表2) 给定一个 SONG_ID,为其添加一个新的URL_ID3) 添加一个新的 SONG_ID4) 给定一个 URL_ID,将其置为不可用限制条件:内存占用不超过 1G,单个文件大小不超过 阅读全文

设计海量key-value数据的存储查询模块

2012-09-02 18:42 by iamzhaiwei, 958 阅读, 收藏,
摘要: (百度2011)单机存储100亿大数据量的key-value数据,要求能够支持插入和查询操作,单条数据长度不定,平均约1024字节,假设可用内存10G,磁盘空间不限,请设计一个存储查询模块,支持按照key来获取对应的value,设计目标以查询性能为先,尽量节约资源,查询可以理解为网民的检索行为。1)说明该设计方案和主要思路,以及优缺点2)请详细说明该设计思路下查询和插入的操作流程3)如果增加更新操作,请评估前面的设计方案是否可行,需要做怎样的修改,不可行则指明主要问题点。分析:1)数据量大小为:data_size=100亿*1024Byte=10^10*10^3Byte=10^13Byte=1 阅读全文