代码改变世界

阅读排行榜

海量数据处理专题(五)——堆(百度,搜狗,雅虎,微软面试必备)

2012-08-28 19:35 by 码农1946, 3648 阅读, 收藏,
摘要: 【什么是堆】 概念:堆是一种特殊的二叉树,具备以下两种性质: 1)每个节点的值都大于(或者都小于,称为最小堆)其子节点的值。 2)树是完全平衡的,并且最后一层的树叶都在最左边。 这样就定义了一个最大堆。如下图用一个数组来表示堆... 阅读全文

海量数据处理专题(三)——Hash

2012-08-23 20:11 by 码农1946, 3575 阅读, 收藏,
摘要: 【什么是Hash】 Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。 HASH主要用于信息安全领域中加密算法,它把一些不同长度的信息转化成杂乱的128位的编码,这些编码值叫做HASH值. 也可以说,hash就是找到一种数据内容和数据存放地址之间的映射关系。 数组的特点是:寻址容易,插入和删除困难;而链表的特点是:寻址困难,插入和删除容易。那么我们能不能综合两者的特性,做出一种寻址容易,插入删除也容易的数据结构?答案是肯定的,这就是我们要提起的哈希表... 阅读全文

海量数据处理专题(四)——Bit-map

2012-08-28 08:27 by 码农1946, 2848 阅读, 收藏,
摘要: 【什么是Bit-map】 所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省。 如果说了这么多还没明白什么是Bit-map,那么我们来看一个具体的例子,假设我们要对0-7内的5个元素(4,7,2,5,3)排序(这里假设这些元素没有重复)。那么我们就可以采用Bit-map的方法来达到排序的目的。 阅读全文