06 2012 档案

摘要:第一次见到bitmap这个数据结构是在《编程珠玑》这本书中,当时第一感觉这个数据结构真的好强大,能够这么巧妙的处理海量数据的处理。接下来我们来简单学习一下这个强大的工具。bitmap是查找算法中常用到的一种算法,通过该数据结构,我们能够很快的判断某一个元素是否在某一个集合中。(当然我们需要提前把该集合利用bitmap算法把集合存储起来)。bitmap的思路其实和hash,索引排序的思路是相似的。我们无非都是在寻找一种如何快速得到存储元素的下标(存储地址)的方法而已。而hash的做法是将每一个元素通过一个函数映射到一个下标索引(建立元素和地址的映射关系),而bitmap的做法是花费最小的存储单元 阅读全文
posted @ 2012-06-27 20:33 f_x_p 阅读(850) 评论(0) 推荐(0)
摘要:第一次听说Bloom Filter 是我在跟一个师兄交流一道算法题的时候听到的一个陌生名词,当时就google了一下,很快就从吴军老师的google黑板报里得到了答案。原来它是这么一个高级的数据结构(连google都在用)。对于集合的处理,一般我们能想到的数据结构无非就是树,hash表这两个基础的数据结构。每一个数据结构都有自己的用武之地,在处理一个相对来说不算很大的集合的时候这两个数据结构足以能够应付了,并且是相当的令人满意,然而你有没有想到过数据量很大的情况,像《数学之美》中提到的例子,如果需要你很快的判断一个电子邮件的发送者是否在黑名单中(这个黑名单是很大的,上亿级别的)。这个时候如果用 阅读全文
posted @ 2012-06-27 20:15 f_x_p 阅读(371) 评论(0) 推荐(0)
摘要:每一位学习过C语言的同学都知道char这个数据类型是用来存储字符变量的。可它在内部到底是怎么表示的呢?我们看到的仅仅是由编译器进行解析过之后的情形。如果你觉得没必要深究,就不用再往下面看了。 在C语言中其实都把char分为了unsigned char和signed char. 我们平时使用unsigned char和char 并不一定全都是为了表达一个字符,有时候我们可能会在别的地方使用它们,比如:在有些时候我们为了节省内存空间(用更少的内存区表达相同的信息),比如在嵌入式编程中长用到的在表达的整数在比较小的范围中时,就可以仅仅用char类型来表示整数,免去了浪费多余的空间。(用char... 阅读全文
posted @ 2012-06-21 19:39 f_x_p 阅读(2245) 评论(0) 推荐(0)
摘要:也许很多人懂得这个概念,也许很多不知道。之前我只知道有这么一种函数,但不知道它的具体实现原理,今天又对它进行了重新的学习。 在C语言中如果你分别定义了这样的两个函数 int function1(){ ............. } int function2(void){ ............. } 那么请问你知道它们的不同吗?刚开始的时候我感觉是一样的,直到有一天在看C++方面书籍的时候才看到了其实它们是不一样的,在C中function1是一个可以拥有任意参数的函数,而function2很明显是没有参数的函数。而再C++中这两个是 一样的。这验证了那一句话C++编译器... 阅读全文
posted @ 2012-06-21 11:13 f_x_p 阅读(581) 评论(0) 推荐(0)