摘要:大数据量的问题是很多面试笔试中经常出现的问题,比如baidu google 腾讯 这样的一些涉及到海量数据的公司经常会问到。其实在园子里面好多类似的面试题都可以用这样的方法来解答,比如百度的TopK热门查询问题,某日IP最多访问问题。把这类问题研究好了,面试像百度,腾讯这样的公司就完全没问题了!!! 阅读全文
海量数据处理专题(五)——堆(百度,搜狗,雅虎,微软面试必备)
2012-08-28 19:35 by 码农1946, 3634 阅读, 2 推荐, 收藏, 编辑
摘要:【什么是堆】
概念:堆是一种特殊的二叉树,具备以下两种性质:
1)每个节点的值都大于(或者都小于,称为最小堆)其子节点的值。
2)树是完全平衡的,并且最后一层的树叶都在最左边。
这样就定义了一个最大堆。如下图用一个数组来表示堆... 阅读全文
海量数据处理专题(四)——Bit-map
2012-08-28 08:27 by 码农1946, 2832 阅读, 1 推荐, 收藏, 编辑
摘要:【什么是Bit-map】
所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省。
如果说了这么多还没明白什么是Bit-map,那么我们来看一个具体的例子,假设我们要对0-7内的5个元素(4,7,2,5,3)排序(这里假设这些元素没有重复)。那么我们就可以采用Bit-map的方法来达到排序的目的。 阅读全文
海量数据处理专题(三)——Hash
2012-08-23 20:11 by 码农1946, 3555 阅读, 2 推荐, 收藏, 编辑
摘要:【什么是Hash】
Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
HASH主要用于信息安全领域中加密算法,它把一些不同长度的信息转化成杂乱的128位的编码,这些编码值叫做HASH值. 也可以说,hash就是找到一种数据内容和数据存放地址之间的映射关系。
数组的特点是:寻址容易,插入和删除困难;而链表的特点是:寻址困难,插入和删除容易。那么我们能不能综合两者的特性,做出一种寻址容易,插入删除也容易的数据结构?答案是肯定的,这就是我们要提起的哈希表... 阅读全文
数学牛人建立模型找到丢失丢失的手机和公交卡-[真实故事]就发生在北京
2011-10-12 00:29 by 码农1946, 29497 阅读, 1 推荐, 收藏, 编辑
摘要:当你的手机钱包丢失了之后,你会怎么办?“丢了就丢了”可能是是大多数人的做法。这里告诉你一个牛人的做法,如何利用组合数学建立模型,从而成功找到拣手机的人。以后不要再说学数学没有用了啊,再说我和你急!!! 阅读全文
海量数据处理专题(八)——倒排索引(搜索引擎之基石)
2011-09-26 01:06 by 码农1946, 5731 阅读, 3 推荐, 收藏, 编辑
摘要:在信息大爆炸的今天,有了搜索引擎的帮助,使得我们能够快速,便捷的找到所求。提到搜索引擎,就不得不说VSM模型,说到VSM,就不得不聊倒排索引。可以毫不夸张的讲,倒排索引是搜索引擎的基石。
倒排索引(英语:Inverted index),也常被称为反向索引、置入档案或反向档案,是一种索引方法,被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射。它是文档检索系统中最常用的数据结构。 阅读全文
海量数据处理专题(二)——Bloom Filter
2011-08-29 00:43 by 码农1946, 4809 阅读, 3 推荐, 收藏, 编辑
摘要:应园友要求,把海量数据处理专题以前的文章搬过来。最近在写倒排索引,希望继续关注本博。
Bloom Filter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。Bloom Filter的这种高效是有一定代价的:在判断一个元素是否属于某个集合时,有可能会把不属于这个集合的元素误认为属于这个集合(false positive)。因此,Bloom Filter不适合那些“零错误”的应用场合。而在能容忍低错误率的应用场合下,采用Bloom Filter的数据结构,可以通过极少的错误换取了存储空间的极大节省。 阅读全文
海量数据处理专题(七)——数据库索引及优化
2011-08-17 23:49 by 码农1946, 16406 阅读, 17 推荐, 收藏, 编辑
摘要:数据库优化
此外,除了数据库索引是笔试面试考察重点之外,在LAMP结果如此流行的今天,数据库(尤其是MySQL)性能优化也是海量数据处理的一个热点。下面就结合自己的经验,聊一聊MySQL数据库优化的几个方面。
首先,在数据库设计的时候,要能够充分的利用索引带来的性能提升,至于如何建立索引,建立什么样的索引,在哪些字段上建立索引,上面已经讲的很清楚了,这里不在赘述。另外就是设计数据库的原则就是尽可能少的进行数据库写操作(插入,更新,删除等),查询越简单越好。如下: 阅读全文
IT名企笔试面试题合辑
2011-05-08 23:51 by 码农1946, 6125 阅读, 2 推荐, 收藏, 编辑
摘要:最近开了一个新的博客,里面包含了大量的笔试面试题,这对于要找工作的人,无疑是一个很大的帮助。
IT程序员笔试面试网里面包含有百度笔试面试题,谷歌笔试面试题,腾讯,淘宝,搜狗,人民搜索,有道,EMC,微软等知名企业的笔试面试题,欢迎订阅,此外,也欢迎大家踊跃供稿,大家一起进步。 阅读全文
m进制转换为n进制-任意进制转换算法(百度面试题)
2010-10-27 13:07 by 码农1946, 20006 阅读, 1 推荐, 收藏, 编辑
摘要:这种题也是一道经典的面试题,主要考察进制转换细想,Coding质量等。当我们把十进制转成二进制的时候,我们通过辗转相除,取余,逆置余数序列的过程得到新的进制的数。面对一个具体的题目,例如十六进制转成八进制,二进制转成10进制,三进制转成5进制,我们都很容易解决,但是如果进制是个变量,m进制转成n进制,那要怎么做呢? 阅读全文
一个Sqrt函数引发的血案
2010-10-06 17:13 by 码农1946, 137433 阅读, 60 推荐, 收藏, 编辑
摘要:我们平时经常会有一些数据运算的操作,需要调用sqrt,exp,abs等函数,那么时候你有没有想过:这个些函数系统是如何实现的?就拿最常用的sqrt函数来说吧,系统怎么来实现这个经常调用的函数呢?一个函数即将引发一场血案。。。拭目以待 阅读全文