代码改变世界

03 2012 档案

摘要:原文地址:http://www.codinglabs.org/html/theory-of-mysql-index.html#nav-2-1摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。文章主要内容分为三个部分。第一部分主要从数据结构及算法理论层面讨论MySQL数据库索引的数理基础。第 阅读全文
posted @ 2012-03-30 05:05 Rollen Holt 阅读(5021) 评论(0) 推荐(2)
摘要:作者:July、yansha。出处:http://blog.csdn.net/v_JULY_v。引言 常关注本blog的读者朋友想必看过此篇文章:从B树、B+树、B*树谈到R 树,这次,咱们来讲另外两种树:Tire树与后缀树。不过,在此之前,先来看两个问题。 第一个问题: 一个文本文件,大约有一万行,每行一个词,要求统计出其中最频繁出现的前10个词,请给出思想,给出时间复杂度分析。 之前在此文:海量数据处理面试题集锦与Bit-map详解中给出的参考答案:用trie树统计每个词出现的次数,时间复杂度是O(n*le)(le表示单词的平均长度),然后是找出出现最频繁的前10个词。也可以用堆来实现(. 阅读全文
posted @ 2012-03-30 04:53 Rollen Holt 阅读(2091) 评论(0) 推荐(1)
摘要:作者:July出处:结构之法算法之道blog前言 一般而言,标题含有“秒杀”,“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文,却无任何收获,那么,我也甘愿背负这样的罪名,:-),同时,此文可以看做是对这篇文章:十道海量数据处理面试题与十个方法大总结的一般抽象性总结。 毕竟受文章和理论之限,本文将摒弃绝大部分的细节,只谈方法/模式论,且注重用最通俗最直白的语言阐述相关问题。最后,有一点必须强调的是,全文行文是基于面试题的分析基础之上的,具体实践过程中,还是得具体情况具体分析,且场景也远比本文所述的任何一种情况复杂得多。 OK,若有任何问题,欢迎.. 阅读全文
posted @ 2012-03-30 04:35 Rollen Holt 阅读(1067) 评论(0) 推荐(1)
摘要:十一、从头到尾彻底解析Hash 表算法作者:July、wuliming、pkuoliver出处:http://blog.csdn.net/v_JULY_v。说明:本文分为三部分内容, 第一部分为一道百度面试题Top K算法的详解;第二部分为关于Hash表算法的详细阐述;第三部分为打造一个最快的Hash表算法。------------------------------------第一部分:Top K 算法详解问题描述百度面试题: 搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节。 假设目前有一千万个记录(这些查询串的重复度比较高,虽然总数是1千. 阅读全文
posted @ 2012-03-30 02:23 Rollen Holt 阅读(4231) 评论(0) 推荐(0)
摘要:作者:小桥流水,redfox66,July。前言 本博客内曾经整理过有关海量数据处理的10道面试题(十道海量数据处理面试题与十个方法大总结),此次除了重复了之前的10道面试题之后,重新多整理了7道。仅作各位参考,不作它用。 同时,程序员编程艺术系列将重新开始创作,第十一章以后的部分题目来源将取自下文中的17道海量数据处理的面试题。因为,我们觉得,下文的每一道面试题都值得重新思考,重新深究与学习。再者,编程艺术系列的前十章也是这么来的。若您有任何问题或建议,欢迎不吝指正。谢谢。第一部分、十五道海量数据处理面试题1. 给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G 阅读全文
posted @ 2012-03-30 02:03 Rollen Holt 阅读(918) 评论(1) 推荐(0)
摘要:1.如果函数func是__cdecl(默认调用方式),调用时情况如下int main(){//参数从右到左压栈 push4 push3 push2 push1 call func add esp0x10//调用者恢复堆栈指针esp,4个参数的大小是0x10(4x4) }2.如果函数func是__stdcall,调用时情况如下int main(){//参数从右到左压栈 push4 push3 push2 push1 call func//恢复堆栈指针由被调用者func负责,方法是"ret 0x10" }3.如果函数func是__pascal,调用情况如下int main(){ 阅读全文
posted @ 2012-03-29 12:20 Rollen Holt 阅读(400) 评论(0) 推荐(0)
摘要:在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。其格式一般为: #Pragma Para其中Para 为参数,下面来看一些常用的参数。(1)message 参数。 Message 参数是我最喜欢的一个参数,它能够在编译信息输出窗口中输出相应的信息,这对于源代码信息的控制是非常重要的。其使用方法为:#Pragma message(“消息文本 阅读全文
posted @ 2012-03-28 19:10 Rollen Holt 阅读(780) 评论(0) 推荐(2)
摘要:对于规模较大的C++项目,头文件的互包含和互依赖关系经常困扰开发者.例如:class foo{public:foo();void method_foo_b(const foo_a& b);private:void method_foo_c(const foo_b& c);private:foo_b b_;foo_c c_;};int main(...){foo fooi;}如果要使得main或者一个必须包含foo的class通过编译,则不仅需要包含foo头文件,还必须包含foo_b, foo_c的头文件.而实际上foo_b, foo_c是foo内部使用的类,完全不需要外部调用着 阅读全文
posted @ 2012-03-27 23:30 Rollen Holt 阅读(448) 评论(0) 推荐(0)
摘要:原文:http://hi.baidu.com/_%E2d_%B7%B3_%DE%B2%C2%D2/blog/item/b46a27d9dc50c0ed39012f8f.htmlC风格(C-style)强制转型如下:(T) exdivssion // cast exdivssion to be of type T函数风格(Function-style)强制转型使用这样的语法:T(exdivssion) // cast exdivssion to be of type T这两种形式之间没有本质上的不同,它纯粹就是一个把括号放在哪的问题。我把这两种形式称为旧风格(old-style)的强制转型。使用 阅读全文
posted @ 2012-03-27 23:22 Rollen Holt 阅读(354) 评论(0) 推荐(1)
摘要:我们在C语言编程中会遇到一些参数个数可变的函数,例如printf()这个函数,它的定义是这样的:int printf( const char* format, ...);它除了有一个参数format固定以外,后面跟的参数的个数和类型是可变的,例如我们可以有以下不同的调用方法:printf("%d",i);printf("%s",s);printf("the number is %d ,string is:%s", i, s);究竟如何写可变参数的C函数以及这些可变参数的函数编译器是如何实现的呢?本文就这个问题进行一些探讨,希望能对大家 阅读全文
posted @ 2012-03-27 22:39 Rollen Holt 阅读(782) 评论(0) 推荐(1)
摘要:原文地址:http://coolshell.cn/articles/4119.html因为之前收藏的地址找不到了,所以重新发一下昨天写了一篇如何学好C语言,就有人回复问我如何学好C++,所以,我把我个人的一些学习经验写在这里,希望对大家有用。首先,因为如何学好C语言中谈到了算法和系统,所以这里就只谈C++语言。C++是最难的语言。这个世界上最难的编程语言可能非C++莫属了。你千万不要以为几天就可以学好C++,C++的学习曲线是相当BT的,你可以看看这篇文章。C++是一门很自由的语言,自由到了有点BT和恐怖的地步。我甚至认为C++并不是一门成熟的编程语言,因为太容易犯错了。所以,你一定要在一开始 阅读全文
posted @ 2012-03-21 15:39 Rollen Holt 阅读(395) 评论(0) 推荐(0)
摘要:最近经常在这个版面看到Django相关扩展的介绍,而其一个扩展写一个帖子,觉得没太必要吧。以前整理的django资源列表,从我的wiki上转过来的。要找django资源,官网的wiki也是一个不错的地方。http://code.djangoproject.com/wiki/DjangoResources资源django官网django文档Django Step by Step曾是最佳的django入门教程,只是这个教程是针对0.95的,现在不少地方已经有所变动。django可复用app设计django最佳实践django可复用app设计 的一个更好的分支。个人为人这个文档是每个django开发 阅读全文
posted @ 2012-03-11 18:47 Rollen Holt 阅读(1239) 评论(0) 推荐(0)
摘要:转自:http://liluo.org/2010/05/win-apache-mod_wsgi-django-domain/Python是落落的最爱,Django是Python web framework中的佼佼者,所以一直超爱。当然,Python web server也有N多选择,这里落落使用Apache+mod_wsgi来配置(也有用apache+mod_Python来配置的,不过貌似在Out中……)。如果有朋友是Google或者Baidu过来想了解下是怎样配置的,也许落落这篇博文可以帮到你。首先讲下落落使用的软件版本:WinxpApache(2.2,xampp1.7.3)下载地址djan 阅读全文
posted @ 2012-03-10 22:15 Rollen Holt 阅读(1904) 评论(0) 推荐(0)
摘要:github使用ssh方式认证登录。官方文档:http://help.github.com/ssh-key-passphrases/之所以不使用普通的密码验证登录,原因在于:密码不够安全。如果你使用简单的密码,比如“1234”,非常容易被猜到或者被暴力破解;如果你使用复杂的密码,为了避免自己也忘记,又可能会记在某个地方,如果被人发现,就糟了。两种方式都很不妥。所以github采用ssh密钥方案。但如果只使用ssh密钥而不使用passphrase(口令或密码),那跟使用复杂密码然后记下来没啥区别。比如你将ssh密钥记在电脑某处,如果其他人获取了这个文件,那就没有安全可言。解决办法是:再增加一个p 阅读全文
posted @ 2012-03-10 20:15 Rollen Holt 阅读(5179) 评论(0) 推荐(0)
摘要:转转地址:http://www.cnblogs.com/xd502djj/archive/2010/09/16/1827683.html下载安装Python。从Vim的网站下载vim,建议下Self-installing executable的版本。编辑vim的配置文件_vimrc拷贝vimrc_example里面的东东到_vimrc去掉_vimrc里面的source $VIMRUNTIME/vimrc_example.vim设置中文支持"设置编码自动识别, 中文引号显示"set fileencodings=utf-8,cp936,big5,euc-jp,euc-kr,la 阅读全文
posted @ 2012-03-08 18:42 Rollen Holt 阅读(539) 评论(0) 推荐(0)