下面是小编给大家带来数据处理面试题,本文共9篇,一起来阅读吧,希望对您有所帮助。
篇1:数据处理面试题
}
*p = *p|(0x01<<(posi%BYTESIZE));//将该Bit位赋值1
return;
}
void BitMapSortDemo
{
//为了简单起见,我们不考虑负数
int num[] = {3,5,2,10,6,12,8,14,9};
//BufferLen这个值是根据待排序的数据中最大值确定的
//待排序中的最大值是14,因此只需要2个Bytes(16个Bit)
//就可以了。
const int BufferLen = 2;
char *pBuffer = new char[BufferLen];
//要将所有的Bit位置为0,否则结果不可预知。
memset(pBuffer,0,BufferLen);
for(int i=0;i<9;i++)
{
//首先将相应Bit位上置为1
SetBit(pBuffer,num[i]);
}
//输出排序结果
for(int i=0;i
{
for(int j=0;j
{
//判断该位上是否是1,进行输出,这里的判断比较笨。
//首先得到该第j位的掩码(0x01<< p=“”>
//位和此掩码作与操作。最后判断掩码是否和处理后的
//结果相同
if((*pBuffer&(0x01<
{
printf(“%d ”,i*BYTESIZE + j);
}
}
pBuffer++;
}
}
int _tmain(int argc, _TCHAR* argv[])
{
BitMapSortDemo();
return 0;
}
可进行数据的快速查找,判重,删除,一般来说数据范围是int的10倍以下
基本原理及要点
使用bit数组来表示某些元素是否存在,比如8位电话号码
扩展
Bloom filter可以看做是对bit-map的扩展(关于Bloom filter,请参见:海量数据处理之Bloom filter详解)。
问题实例
1)已知某个文件内包含一些电话号码,每个号码为8位数字,统计不同号码的个数。
8位最多99 999 999,大概需要99m个bit,大概10几m字节的内存即可。 (可以理解为从0-99 999 999的数字,每个数字对应一个Bit位,所以只需要99M个Bit==1.2MBytes,这样,就用了小小的1.2M左右的内存表示了所有的8位数的电话)
2)2.5亿个整数中找出不重复的整数的个数,内存空间不足以容纳这2.5亿个整数。
将bit-map扩展一下,用2bit表示一个数即可,0表示未出现,1表示出现一次,2表示出现2次及以上,在遍历这些数的时候,如果对应位置的值是0,则将其置为1;如果是1,将其置为2;如果是2,则保持不变。或者我们不用2bit来进行表示,我们用两个bit-map即可模拟实现这个2bit-map,都是一样的道理。
篇2:数据处理面试题
方案2:采用快速排序的思想,每次分割之后只考虑比轴大的一部分,知道比轴大的一部分在比100多的时候,采用传统排序算法排序,取前100个。复杂度为O(100w*100)。
方案3:采用局部淘汰法。选取前100个元素,并排序,记为序列L。然后一次扫描剩余的元素x,与排好序的100个元素中最小的元素比,如果比这个最小的要大,那么把这个最小的元素删除,并把x利用插入排序的思想,插入到序列L中。依次循环,知道扫描了所有的元素。复杂度为O(100w*100)。
13. 寻找热门查询:
搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节。假设目前有一千万个记录,这些查询串的重复读比较高,虽然总数是1千万,但是如果去除重复和,不超过3百万个。一个查询串的重复度越高,说明查询它的用户越多,也就越热门。请你统计最热门的10个查询串,要求使用的内存不能超过1G。
(1) 请描述你解决这个问题的思路;
(2) 请给出主要的处理流程,算法,以及算法的复杂度。
方案1:采用trie树,关键字域存该查询串出现的次数,没有出现为0。最后用10个元素的最小推来对出现频率进行排序。
14. 一共有N个机器,每个机器上有N个数。每个机器最多存O(N)个数并对它们操作。如何找到N^2个数中的中数?
方案1:先大体估计一下这些数的范围,比如这里假设这些数都是32位无符号整数(共有2^32个)。我们把0到2^32-1的整数划分为N个范围段,每个段包含(2^32)/N个整数。比如,第一个段位0到2^32/N-1,第二段为(2^32)/N到(2^32)/N-1,…,第N个段为(2^32)(N-1)/N到2^32-1。然后,扫描每个机器上的N个数,把属于第一个区段的数放到第一个机器上,属于第二个区段的数放到第二个机器上,…,属于第N个区段的数放到第N个机器上。注意这个过程每个机器上存储的数应该是O(N)的。下面我们依次统计每个机器上数的个数,一次累加,直到找到第k个机器,在该机器上累加的数大于或等于(N^2)/2,而在第k-1个机器上的累加数小于(N^2)/2,并把这个数记为x。那么我们要找的中位数在第k个机器中,排在第(N^2)/2-x位。然后我们对第k个机器的数排序,并找出第(N^2)/2-x个数,即为所求的中位数的复杂度是O(N^2)的。
方案2:先对每台机器上的数进行排序。排好序后,我们采用归并排序的思想,将这N个机器上的数归并起来得到最终的排序。找到第(N^2)/2个便是所求。复杂度是O(N^2*lgN^2)的。
15. 最大间隙问题
给定n个实数,求着n个实数在实轴上向量2个数之间的最大差值,要求线性的时间算法。
方案1:最先想到的方法就是先对这n个数据进行排序,然后一遍扫描即可确定相邻的最大间隙。但该方法不能满足线性时间的要求。故采取如下方法:
找到n个数据中最大和最小数据max和min。
用n-2个点等分区间[min, max],即将[min, max]等分为n-1个区间(前闭后开区间),将这些区间看作桶,编号为,且桶i 的上界和桶i+1的下届相同,即每个桶的大小相同。每个桶的大小为:。实际上,这些桶的边界构成了一个等差数列(首项为min,公差为),且认为将min放入第一个桶,将max放入第n-1个桶。
将n个数放入n-1个桶中:将每个元素x[i] 分配到某个桶(编号为index),其中,并求出分到每个桶的最大最小数据。
最大间隙:除最大最小数据max和min以外的n-2个数据放入n-1个桶中,由抽屉原理可知至少有一个桶是空的,又因为每个桶的大小相同,所以最大间隙不会在同一桶中出现,一定是某个桶的上界和气候某个桶的下界之间隙,且该量筒之间的桶(即便好在该连个便好之间的桶)一定是空桶。也就是说,最大间隙在桶i的上界和桶j的下界之间产生j>=i+1。一遍扫描即可完成。
16. 将多个集合合并成没有交集的集合
给定一个字符串的集合,格式如:。要求将其中交集不为空的集合合并,要求合并完成的集合之间无交集,例如上例应输。
(1) 请描述你解决这个问题的思路;
(2) 给出主要的处理流程,算法,以及算法的复杂度;
(3) 请描述可能的改进。
方案1:采用并查集。首先所有的字符串都在单独的并查集中。然后依扫描每个集合,顺序合并将两个相邻元素合并。例如,对于,首先查看aaa和bbb是否在同一个并查集中,如果不在,那么把它们所在的并查集合并,然后再看bbb和ccc是否在同一个并查集中,如果不在,那么也把它们所在的并查集合并。接下来再扫描其他的集合,当所有的集合都扫描完了,并查集代表的集合便是所求。复杂度应该是O(NlgN)的。改进的话,首先可以记录每个节点的根结点,改进查询。合并的时候,可以把大的和小的进行合,这样也减少复杂度。
17. 最大子序列与最大子矩阵问题
数组的最大子序列问题:给定一个数组,其中元素有正,也有负,找出其中一个连续子序列,使和最大。
方案1:这个问题可以动态规划的思想解决。设b[i]表示以第i个元素a[i]结尾的最大子序列,那么显然。基于这一点可以很快用代码实现。
最大子矩阵问题:给定一个矩阵(二维数组),其中数据有大有小,请找一个子矩阵,使得子矩阵的和最大,并输出这个和。
方案2:可以采用与最大子序列类似的思想来解决。如果我们确定了选择第i列和第j列之间的元素,那么在这个范围内,其实就是一个最大子序列问题。如何确定第i列和第j列可以词用暴搜的方法进行。
第二部分、海量数据处理之Bti-map详解
Bloom Filter已在上一篇文章海量数据处理之Bloom Filter详解中予以详细阐述,本文接下来着重阐述Bit-map。有任何问题,欢迎不吝指正。
什么是Bit-map
所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省。
如果说了这么多还没明白什么是Bit-map,那么我们来看一个具体的例子,假设我们要对0-7内的5个元素(4,7,2,5,3)排序(这里假设这些元素没有重复)。那么我们就可以采用Bit-map的方法来达到排序的目的。要表示8个数,我们就只需要8个Bit(1Bytes),首先我们开辟1Byte的空间,将这些空间的所有Bit位都置为0(如下图:)
然后遍历这5个元素,首先第一个元素是4,那么就把4对应的位置为1(可以这样操作 p+(i/8)|(0×01<<(i%8)) 当然了这里的操作涉及到Big-ending和Little-ending的情况,这里默认为Big-ending),因为是从零开始的,所以要把第五位置为一(如下图):
然后再处理第二个元素7,将第八位置为1,,接着再处理第三个元素,一直到最后处理完所有的元素,将相应的位置为1,这时候的内存的Bit位的状态如下:
然后我们现在遍历一遍Bit区域,将该位是一的位的编号输出(2,3,4,5,7),这样就达到了排序的目的。下面的代码给出了一个BitMap的用法:排序。
view plain
//定义每个Byte中有8个Bit位
#include
#define BYTESIZE 8
void SetBit(char *p, int posi)
{
for(int i=0; i < (posi/BYTESIZE); i++)
{
p++;
篇3:教你如何迅速秒杀掉:99%的海量数据处理面试题
前言
一般而言,标题含有“秒杀”,“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文,却无任何收获,那么,我也甘愿背负这样的罪名,:-),同时,此文可以看做是对这篇文章:十道海量数据处理面试题与十个方法大总结的一般抽象性总结,
毕竟受文章和理论之限,本文将摒弃绝大部分的细节,只谈方法/模式论,且注重用最通俗最直白的语言阐述相关问题。最后,有一点必须强调的是,全文行文是基于面试题的分析基础之上的,具体实践过程中,还是得具体情况具体分析,且场景也远比本文所述的任何一种场景复杂得多。
OK,若有任何问题,欢迎随时不吝赐教。谢谢。
何谓海量数据处理?
所谓海量数据处理,其实很简单,海量,海量,何谓海量,就是数据量太大,所以导致要么是无法在较短时间内迅速解决,要么是数据太大,导致无法一次性装入内存。
那解决办法呢?针对时间,我们可以采用巧妙的算法搭配合适的数据结构,如Bloom filter/Hash/bit-map/堆/数据库或倒排索引/trie/,针对空间,无非就一个办法:大而化小:分而治之/hash映射,你不是说规模太大嘛,那简单啊,就把规模大化为规模小的,各个击破不就完了嘛。
至于所谓的单机及集群问题,通俗点来讲,单机就是处理装载数据的机器有限(只要考虑cpu,内存,硬盘的数据交互),而集群,机器有多辆,适合分布式处理,并行计算(更多考虑节点和节点间的数据交互)。
再者,通过本blog内的有关海量数据处理的文章:blog.csdn/v_july_v/article/category/1106578,我们已经大致知道,处理海量数据问题,无非就是:
分而治之/hash映射 + hash统计 + 堆/快速/归并排序;
双层桶划分
Bloom filter/Bitmap;
Trie树/数据库/倒排索引;
外排序;
分布式处理之Hadoop/Mapreduce。
本文接下来的部分,便针对这6种方法模式结合对应的海量数据处理面试题分别具体阐述。
处理海量数据问题之六把密匙
密匙一、分而治之/Hash映射 + Hash统计 + 堆/快速/归并排序
1、海量日志数据,提取出某日访问百度次数最多的那个IP。
既然是海量数据处理,那么可想而知,给我们的数据那就一定是海量的。针对这个数据的海量,我们如何着手呢?对的,无非就是分而治之/hash映射 + hash统计 + 堆/快速/归并排序,说白了,就是先映射,而后统计,最后排序:
分而治之/hash映射:针对数据太大,内存受限,只能是:把大文件化成(取模映射)小文件,即16字方针:大而化小,各个击破,缩小规模,逐个解决
hash统计:当大文件转化了小文件,那么我们便可以采用常规的Hashmap(ip,value)来进行频率统计。
堆/快速排序:统计完了之后,便进行排序(可采取堆排序),得到次数最多的IP。
具体而论,则是: “首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多有个2^32个IP。同样可以采用映射的方法,比如模1000,把整个大文件映射为1000个小文件,再找出每个小文中出现频率最大的IP(可以采用Hash_map进行频率统计,然后再找出频率最大的几个)及相应的频率。然后再在这1000个最大的IP中,找出那个频率最大的IP,即为所求。”--十道海量数据处理面试题与十个方法大总结。
注:Hash取模是一种等价映射,不会存在同一个元素分散到不同小文件中去的情况,即这里采用的是mod1000算法,那么相同的IP在hash后,只可能落在同一个文件中,不可能被分散的。有兴趣的,还可以再了解下一致性hash算法,见此文第五部分:blog.csdn/v_july_v/article/details/6879101。
2、搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节。
假设目前有一千万个记录(这些查询串的重复度比较高,虽然总数是1千万,但如果除去重复后,不超过3百万个。一个查询串的重复度越高,说明查询它的用户越多,也就是越热门。),请你统计最热门的10个查询串,要求使用的内存不能超过1G。
由上面第1题,我们知道,数据大则划为小的,但如果数据规模比较小,能一次性装入内存呢?比如这第2题,虽然有一千万个Query,但是由于重复度比较高,因此事实上只有300万的Query,每个Query255Byte,因此我们可以考虑把他们都放进内存中去,而现在只是需要一个合适的数据结构,在这里,Hash Table绝对是我们优先的选择。所以我们摒弃分而治之/hash映射的方法,直接上hash统计,然后排序。So,
hash统计:先对这批海量数据预处理(维护一个Key为Query字串,Value为该Query出现次数的HashTable,即Hashmap(Query,Value),每次读取一个Query,如果该字串不在Table中,那么加入该字串,并且将Value值设为1;如果该字串在Table中,那么将该字串的计数加一即可。最终我们在O(N)的时间复杂度内用Hash表完成了统计;
堆排序:第二步、借助堆这个数据结构,找出Top K,时间复杂度为N‘logK。即借助堆结构,我们可以在log量级的时间内查找和调整/移动。因此,维护一个K(该题目中是10)大小的小根堆,然后遍历300万的Query,分别和根元素进行对比所以,我们最终的时间复杂度是:O(N) + N'*O(logK),(N为1000万,N’为300万)。
别忘了这篇文章中所述的堆排序思路:“维护k个元素的最小堆,即用容量为k的最小堆存储最先遍历到的k个数,并假设它们即是最大的k个数,建堆费时O(k),并调整堆(费时O(logk))后,有k1>k2>...kmin(kmin设为小顶堆中最小元素)。继续遍历数列,每次遍历一个元素x,与堆顶元素比较,若x>kmin,则更新堆(用时logk),否则不更新堆。这样下来,总费时O(k*logk+(n-k)*logk)=O(n*logk)。此方法得益于在堆中,查找等各项操作时间复杂度均为logk。”--第三章续、Top K算法问题的实现。
当然,你也可以采用trie树,关键字域存该查询串出现的次数,没有出现为0。最后用10个元素的最小推来对出现频率进行排序。
3、有一个1G大小的一个文件,里面每一行是一个词,词的大小不超过16字节,内存限制大小是1M。返回频数最高的100个词。
由上面那两个例题,分而治之 + hash统计 + 堆/快速排序这个套路,我们已经开始有了屡试不爽的感觉。下面,再拿几道再多多验证下。请看此第3题:又是文件很大,又是内存受限,咋办?还能怎么办呢?无非还是:
分而治之/hash映射:顺序读文件中,对于每个词x,取hash(x)%5000,然后按照该值存到5000个小文件(记为x0,x1,...x4999)中。这样每个文件大概是200k左右。如果其中的有的文件超过了1M大小,还可以按照类似的方法继续往下分,直到分解得到的小文件的大小都不超过1M。
hash统计:对每个小文件,采用trie树/hash_map等统计每个文件中出现的词以及相应的频率。
堆/归并排序:取出出现频率最大的100个词(可以用含100个结点的最小堆),并把100个词及相应的频率存入文件,这样又得到了5000个文件。最后就是把这5000个文件进行归并(类似于归并排序)的过程了。
4、海量数据分布在100台电脑中,想个办法高效统计出这批数据的TOP10。
此题与上面第3题类似,
堆排序:在每台电脑上求出TOP10,可以采用包含10个元素的堆完成(TOP10小,用最大堆,TOP10大,用最小堆)。比如求TOP10大,我们首先取前10个元素调整成最小堆,如果发现,然后扫描后面的数据,并与堆顶元素比较,如果比堆顶元素大,那么用该元素替换堆顶,然后再调整为最小堆。最后堆中的元素就是TOP10大。
求出每台电脑上的TOP10后,然后把这100台电脑上的TOP10组合起来,共1000个数据,再利用上面类似的方法求出TOP10就可以了。
上述第4题的此解法,经读者反应有问题,如举个例子如比如求2个文件中的top2,照你这种算法,如果第一个文件里有
a 49次
b 50次
c 2次
d 1次
第二个文件里有
a 9次
b 1次
c 11次
d 10次
虽然第一个文件里出来top2是b(50次),a(49次),第二个文件里出来top2是c(11次),d(10次),然后2个top2:b(50次)a(49次)与c(11次)d(10次)归并,则算出所有的文件的top2是b(50 次),a(49 次),但实际上是a(58 次),b(51 次)。是否真是如此呢?若真如此,那作何解决呢?
正如老梦所述:
首先,先把所有的数据遍历一遍做一次hash(保证相同的数据条目划分到同一台电脑上进行运算),然后根据hash结果重新分布到100台电脑中,接下来的算法按照之前的即可。
最后由于a可能出现在不同的电脑,各有一定的次数,再对每个相同条目进行求和(由于上一步骤中hash之后,也方便每台电脑只需要对自己分到的条目内进行求和,不涉及到别的电脑,规模缩小)。
5、有10个文件,每个文件1G,每个文件的每一行存放的都是用户的query,每个文件的query都可能重复。要求你按照query的频度排序。
直接上:
hash映射:顺序读取10个文件,按照hash(query)%10的结果将query写入到另外10个文件(记为)中。这样新生成的文件每个的大小大约也1G(假设hash函数是随机的)。
hash统计:找一台内存在2G左右的机器,依次对用hash_map(query, query_count)来统计每个query出现的次数。注:hash_map(query,query_count)是用来统计每个query的出现次数,不是存储他们的值,出现一次,则count+1。
堆/快速/归并排序:利用快速/堆/归并排序按照出现次数进行排序。将排序好的query和对应的query_cout输出到文件中。这样得到了10个排好序的文件(记为)。对这10个文件进行归并排序(内排序与外排序相结合)。
除此之外,此题还有以下两个方法:
方案2:一般query的总量是有限的,只是重复的次数比较多而已,可能对于所有的query,一次性就可以加入到内存了。这样,我们就可以采用trie树/hash_map等直接来统计每个query出现的次数,然后按出现次数做快速/堆/归并排序就可以了。
方案3:与方案1类似,但在做完hash,分成多个文件后,可以交给多个文件来处理,采用分布式的架构来处理(比如MapReduce),最后再进行合并。
6、给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?
可以估计每个文件安的大小为5G×64=320G,远远大于内存限制的4G。所以不可能将其完全加载到内存中处理。考虑采取分而治之的方法。
分而治之/hash映射:遍历文件a,对每个url求取,然后根据所取得的值将url分别存储到1000个小文件(记为)中。这样每个小文件的大约为300M。遍历文件b,采取和a相同的方式将url分别存储到1000小文件中(记为)。这样处理后,所有可能相同的url都在对应的小文件中,不对应的小文件不可能有相同的url。然后我们只要求出1000对小文件中相同的url即可。
hash统计:求每对小文件中相同的url时,可以把其中一个小文件的url存储到hash_set中。然后遍历另一个小文件的每个url,看其是否在刚才构建的hash_set中,如果是,那么就是共同的url,存到文件里面就可以了。
OK,此第一种方法:分而治之/hash映射 + hash统计 + 堆/快速/归并排序,再看最后三道题,如下:
7、怎么在海量数据中找出重复次数最多的一个?
方案1:先做hash,然后求模映射为小文件,求出每个小文件中重复次数最多的一个,并记录重复次数。然后找出上一步求出的数据中重复次数最多的一个就是所求(具体参考前面的题)。
8、上千万或上亿数据(有重复),统计其中出现次数最多的钱N个数据。
方案1:上千万或上亿的数据,现在的机器的内存应该能存下。所以考虑采用hash_map/搜索二叉树/红黑树等来进行统计次数。然后就是取出前N个出现次数最多的数据了,可以用第2题提到的堆机制完成。
9、一个文本文件,大约有一万行,每行一个词,要求统计出其中最频繁出现的前10个词,请给出思想,给出时间复杂度分析。
方案1:这题是考虑时间效率。用trie树统计每个词出现的次数,时间复杂度是O(n*le)(le表示单词的平准长度)。然后是找出出现最频繁的前10个词,可以用堆来实现,前面的题中已经讲到了,时间复杂度是O(n*lg10)。所以总的时间复杂度,是O(n*le)与O(n*lg10)中较大的哪一个,
管理资料
接下来,咱们来看第二种方法,双层捅划分。
密匙二、双层桶划分
双层桶划分----其实本质上还是分而治之的思想,重在“分”的技巧上!
适用范围:第k大,中位数,不重复或重复的数字
基本原理及要点:因为元素范围很大,不能利用直接寻址表,所以通过多次划分,逐步确定范围,然后最后在一个可以接受的范围内进行。可以通过多次缩小,双层只是一个例子。
扩展:
问题实例:
10、2.5亿个整数中找出不重复的整数的个数,内存空间不足以容纳这2.5亿个整数。
有点像鸽巢原理,整数个数为2^32,也就是,我们可以将这2^32个数,划分为2^8个区域(比如用单个文件代表一个区域),然后将数据分离到不同的区域,然后不同的区域在利用bitmap就可以直接解决了。也就是说只要有足够的磁盘空间,就可以很方便的解决。
11、5亿个int找它们的中位数。
这个例子比上面那个更明显。首先我们将int划分为2^16个区域,然后读取数据统计落到各个区域里的数的个数,之后我们根据统计结果就可以判断中位数落到那个区域,同时知道这个区域中的第几大数刚好是中位数。然后第二次扫描我们只统计落在这个区域中的那些数就可以了。
实际上,如果不是int是int64,我们可以经过3次这样的划分即可降低到可以接受的程度。即可以先将int64分成2^24个区域,然后确定区域的第几大数,在将该区域分成2^20个子区域,然后确定是子区域的第几大数,然后子区域里的数的个数只有2^20,就可以直接利用direct addr table进行统计了。
密匙三:Bloom filter/Bitmap
Bloom filter
关于什么是Bloom filter,请参看此文:海量数据处理之Bloom Filter详解。
适用范围:可以用来实现数据字典,进行数据的判重,或者集合求交集
基本原理及要点:
对于原理来说很简单,位数组+k个独立hash函数。将hash函数对应的值的位数组置1,查找时如果发现所有hash函数对应位都是1说明存在,很明显这个过程并不保证查找的结果是100%正确的。同时也不支持删除一个已经插入的关键字,因为该关键字对应的位会牵动到其他的关键字。所以一个简单的改进就是 counting Bloom filter,用一个counter数组代替位数组,就可以支持删除了。
还有一个比较重要的问题,如何根据输入元素个数n,确定位数组m的大小及hash函数个数。当hash函数个数k=(ln2)*(m/n)时错误率最小。在错误率不大于E的情况下,m至少要等于n*lg(1/E)才能表示任意n个元素的集合。但m还应该更大些,因为还要保证bit数组里至少一半为0,则m应该>=nlg(1/E)*lge 大概就是nlg(1/E)1.44倍(lg表示以2为底的对数)。
举个例子我们假设错误率为0.01,则此时m应大概是n的13倍。这样k大概是8个。
注意这里m与n的单位不同,m是bit为单位,而n则是以元素个数为单位(准确的说是不同元素的个数)。通常单个元素的长度都是有很多bit的。所以使用bloom filter内存上通常都是节省的。
扩展:
Bloom filter将集合中的元素映射到位数组中,用k(k为哈希函数个数)个映射位是否全1表示元素在不在这个集合中。Counting bloom filter(CBF)将位数组中的每一位扩展为一个counter,从而支持了元素的删除操作。Spectral Bloom Filter(SBF)将其与集合元素的出现次数关联。SBF采用counter中的最小值来近似表示元素的出现频率。
12、给你A,B两个文件,各存放50亿条URL,每条URL占用64字节,内存限制是4G,让你找出A,B文件共同的URL。如果是三个乃至n个文件呢?
根据这个问题我们来计算下内存的占用,4G=2^32大概是40亿*8大概是340亿,n=50亿,如果按出错率0.01算需要的大概是650亿个bit。现在可用的是340亿,相差并不多,这样可能会使出错率上升些。另外如果这些urlip是一一对应的,就可以转换成ip,则大大简单了。
同时,上文的第5题:给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?如果允许有一定的错误率,可以使用Bloom filter,4G内存大概可以表示340亿bit。将其中一个文件中的url使用Bloom filter映射为这340亿bit,然后挨个读取另外一个文件的url,检查是否与Bloom filter,如果是,那么该url应该是共同的url(注意会有一定的错误率)。
Bitmap
至于什么是Bitmap,请看此文:/algorithm/1006/312582.html。下面关于Bitmap的应用,直接上题,如下第9、10道:
13、在2.5亿个整数中找出不重复的整数,注,内存不足以容纳这2.5亿个整数。
方案1:采用2-Bitmap(每个数分配2bit,00表示不存在,01表示出现一次,10表示多次,11无意义)进行,共需内存2^32 * 2 bit=1 GB内存,还可以接受。然后扫描这2.5亿个整数,查看Bitmap中相对应位,如果是00变01,01变10,10保持不变。所描完事后,查看bitmap,把对应位是01的整数输出即可。
方案2:也可采用与第1题类似的方法,进行划分小文件的方法。然后在小文件中找出不重复的整数,并排序。然后再进行归并,注意去除重复的元素。
14、腾讯面试题:给40亿个不重复的unsigned int的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中?
方案1:frome oo,用位图/Bitmap的方法,申请512M的内存,一个bit位代表一个unsigned int值。读入40亿个数,设置相应的bit位,读入要查询的数,查看相应bit位是否为1,为1表示存在,为0表示不存在。
密匙四、Trie树/数据库/倒排索引
Trie树
适用范围:数据量大,重复多,但是数据种类小可以放入内存
基本原理及要点:实现方式,节点孩子的表示方式
扩展:压缩实现。
问题实例:
有10个文件,每个文件1G,每个文件的每一行都存放的是用户的query,每个文件的query都可能重复。要你按照query的频度排序。
1000万字符串,其中有些是相同的(重复),需要把重复的全部去掉,保留没有重复的字符串。请问怎么设计和实现?
寻找热门查询:查询串的重复度比较高,虽然总数是1千万,但如果除去重复后,不超过3百万个,每个不超过255字节。
上面的第8题:一个文本文件,大约有一万行,每行一个词,要求统计出其中最频繁出现的前10个词。其解决方法是:用trie树统计每个词出现的次数,时间复杂度是O(n*le)(le表示单词的平准长度),然后是找出出现最频繁的前10个词。
更多有关Trie树的介绍,请参见此文:从Trie树(字典树)谈到后缀树。
数据库索引
适用范围:大数据量的增删改查
基本原理及要点:利用数据的设计实现方法,对海量数据的增删改查进行处理。
关于数据库索引及其优化,更多可参见此文:wwwblogs/pkuoliver/archive/2011/08/17/mass-data-topic-7-index-and-optimize.html。同时,关于MySQL索引背后的数据结构及算法原理,这里还有一篇很好的文章:www.codinglabs/html/theory-of-mysql-index.html。
倒排索引(Inverted index)
适用范围:搜索引擎,关键字查询
基本原理及要点:为何叫倒排索引?一种索引方法,被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射。
以英文为例,下面是要被索引的文本:
T0 = “it is what it is”
T1 = “what is it”
T2 = “it is a banana”
我们就能得到下面的反向文件索引:
“a”: {2}
“banana”: {2}
“is”: {0, 1, 2}
“it”: {0, 1, 2}
“what”: {0, 1}
检索的条件“what”,“is”和“it”将对应集合的交集。
正向索引开发出来用来存储每个文档的单词的列表。正向索引的查询往往满足每个文档有序频繁的全文查询和每个单词在校验文档中的验证这样的查询。在正向索引中,文档占据了中心的位置,每个文档指向了一个它所包含的索引项的序列。也就是说文档指向了它包含的那些单词,而反向索引则是单词指向了包含它的文档,很容易看到这个反向的关系。
扩展:
问题实例:文档检索系统,查询那些文件包含了某单词,比如常见的学术论文的关键字搜索。
关于倒排索引的应用,更多请参见:第二十三、四章:杨氏矩阵查找,倒排索引关键词Hash不重复编码实践,及第二十六章:基于给定的文档生成倒排索引的编码与实践。
密匙五、外排序
适用范围:大数据的排序,去重
基本原理及要点:外排序的归并方法,置换选择败者树原理,最优归并树
扩展:
问题实例:
1).有一个1G大小的一个文件,里面每一行是一个词,词的大小不超过16个字节,内存限制大小是1M。返回频数最高的100个词。
这个数据具有很明显的特点,词的大小为16个字节,但是内存只有1m做hash有些不够,所以可以用来排序。内存可以当输入缓冲区使用。
关于多路归并算法及外排序的具体应用场景,请参见此文:第十章、如何给10^7个数据量的磁盘文件排序。
密匙六、分布式处理之Mapreduce
适用范围:数据量大,但是数据种类小可以放入内存
基本原理及要点:将数据交给不同的机器去处理,数据划分,结果归约。
扩展:
问题实例:
The canonical example application of MapReduce is a process to count the appearances of each different word in a set of documents:
海量数据分布在100台电脑中,想个办法高效统计出这批数据的TOP10。
一共有N个机器,每个机器上有N个数。每个机器最多存O(N)个数并对它们操作。如何找到N^2个数的中数(median)?
更多具体阐述请参见:从Hadhoop框架与MapReduce模式中谈海量数据处理,及MapReduce技术的初步了解与学习。
参考文献
十道海量数据处理面试题与十个方法大总结;
海量数据处理面试题集锦与Bit-map详解;
十一、从头到尾彻底解析Hash表算法;
海量数据处理之Bloom Filter详解;
从Trie树(字典树)谈到后缀树;
第三章续、Top K算法问题的实现;
第十章、如何给10^7个数据量的磁盘文件排序;
第二十三、四章:杨氏矩阵查找,倒排索引关键词Hash不重复编码实践;
第二十六章:基于给定的文档生成倒排索引的编码与实践;
从Hadhoop框架与MapReduce模式中谈海量数据处理;
第十六~第二十章:全排列,跳台阶,奇偶排序,第一个只出现一次等问题;
blog.csdn/sparkliang/article/details/5279393。
后记
经过上面这么多海量数据处理面试题的轰炸,我们依然可以看出这类问题是有一定的解决方案/模式的,所以,不必将其神化。当然,这类面试题所包含的问题还是比较简单的,若您在这方面有更多实践经验,欢迎随时来信与我不吝分享:zhoulei0907@yahoo。
不过,相信你也早就意识到,若单纯论海量数据处理面试题,本blog内的有关海量数据处理面试题的文章已涵盖了你能在网上所找到的70~80%。但有点,必须负责任的敬告大家:无论是这些海量数据处理面试题也好,还是算法也好,70~80%的人不是倒在这两方面,而是倒在基础之上,所以,无论任何时候,基础最重要,没了基础,便什么都不是。最后,推荐国外一面试题网站:www.careercup/。
OK,本文若有任何问题,欢迎随时不吝留言,评论,赐教,谢谢。完。
篇4:经典面试题
1.你为什么到我们公司来?
两名外语专业的大四学生,同校同班,一同应聘总裁助理职位。A说:“我毕业于某大学外语专业,22岁,平均学分90分,班级排名第一,是校学生会主席,组织过很多社团活动,还是学校义卖形象大使。我爸爸是局长,有广泛的人脉。我的爱好是游泳、看书。”B说:“我关注贵公司很久了,很清楚你们公司的业务是……做总裁助理英语必须很好,所以我除了平时在校刻苦学习英语,还利用寒暑假到旅行社实习;我也知道总裁助理的文笔要好,所以一直练习写作,给校广播站和杂志社投稿,现在已发表多篇文章,而且给出版社翻译过外文书。”或许A看起来很优秀,但显然B对公司和职位更有热情,更用心。
2.你能为我们做什么?
有时候面试官会问你:“你在大学都学了哪些专业课?”“除了这些,还会什么?”很多大学生回答“我会C++”,那简直傻透了,对面试官来说,他并不是问你会什么,而是问你能为公司做些什么。如果把回答修改为“我可以利用C++帮公司开发或者完善客户系统,让检索更简单”、“优化公司的管理系统,让全国的数据实现快速共享和更新”,那就截然不同。
3.你是什么样的人?
这等于是在问:你了解自己吗?你的价值观是否和我们一致?“你必须清楚地知道我把你招进来,能把你用在什么地方。”袁岳表示。这个问题还会以“你最害怕的一件事”“最不喜欢的工作环境”“你最喜欢什么样的老板”“你最崇敬的一个人是谁,对你的影响是什么”“你的优点和缺点是什么”等等形式出现。
4.你与竞争同一职位的其他人有何区别?
通常这个问题会带着“你的优势是什么”“为什么我要雇用你”的面具。“时常有学生回答,我有良好的沟通能力、团队合作精神、人际交往能力、组织协调能力……这毫无意义,因为在校生这些差别只分毫厘,既然岗位要求了这些能力,所有进入面试的候选人都具备了大同小异的沟通能力、团队合作精神,这不是你的优势!”汪洱说道,“要讲那些别人没有、只有你有的。”
5.你还有什么问题要问我吗?
通常许多学生会问工资、培训这些问题,事实上这不是最好的选择。招聘者的问题有时间顺序,从遥远的过去递进到最近、到现在、再到未来。这个问题就是个典型的关注未来的问题,你要关注的是工作本身,而不是公司能为你提供什么。所以,“这份工作最大的挑战是什么”“如果我被公司雇佣做这份工作,我需要注意些什么”这类问题都是好问题。
篇5:面试题精选
1、你有一个非常好的工作设想,你经过实际调查认为这个设想既科学,又可行,但你的领导和同事们很固执,你采取什么办法说服他们与你合作?
2、在你朋友当中,有两位朋友由于发生一些矛盾而中断往来,如果需要协调他们之间的关系,你会如何做?
3、你为什么要报考国家公务员(公安)?
4、谈谈你的个人简历和家庭情况(不能透露自己的姓名)?
5、以前我们的计划经济讲究公平,而现在的市场经济讲究效率,请你就这两点谈谈你的看法。
6、你刚到单位工作,找你的电话很多,你打给别人的电话也很多,有一位老同志看不过眼,批评了你,你会怎么做?
7、你认为你身边的某人犯了错误你会怎么做?
8、你认为dy是吗?为什么?
9、谈谈你对本次公务员考试的看法和建议?
10、工作中你难以和同事、上司相处,你该怎么办?
11、你觉的工作后,工作的单位与你的理想有很大的距离,谈谈你的想法?
12、你的工作计划得到了单位局长的批准,而你部门科长且不同你的计划,你给怎么处理?
13、领导让你下乡做扶贫工作,你该怎么制定计划?
14、谈谈你对社会~现象的看法?
15、你所学的知识,工作经验与考的职位之间有什么对应性?
16、有人拿者介绍信说是灾区来的要你们部门捐款,你怎么办?
17、谈谈你对“有权不用,过期作废”和“为官一方,造福一方”的看法?
18、中国已经加入wto,谈谈wto对中国的经济、政治、文化的影响?
19、新领导如何对待前任旧领导?
20、谈谈你对代沟的看法?如果你与领导产生代沟上的问题,你该怎么处理
篇6:经典面试题
求职者应答技巧
职业空白期被许多HR们认为是“不思进取”,“游手好闲”的一段经历。因而,在面试前必须仔细考虑以下在职和不在职期间的活动,那样就会对此问题就有充分的思想准备。但是,在回答时还应注意两个问题:一是要诚恳地回答面试官的问题,不要撒谎;二是要让这段空白期体现出一定的价值,如求职者利用这段空白期对自己的职业生涯进行了全面的总结与思考等等。2.
谈谈你的一次失败经历
面试官考察项目
求职者对于失败的认识
求职者是如何应对挫折的B.
求职者应答技巧
人人都经历过失败,说自己从没失败过,是不可信的。所以求职者一定不能说自己没有失败经历,也不能说严重影响应聘职位的失败经历。在谈失败的经历时,需要把握的有两点:一是求职者将什么事情看成失败;二是求职者是如何从失败的阴影中走出来的。例如,求职者回答的是考试没考好,那就应强调考试之后自己如何调整学习方法,通过何种手段使自己成绩获得提升。3.
什么业余活动(生活习惯)有助于你将工作做得更好
面试官考察项目
求职者发泄感情并从中放松的方法
求职者的业余活动对应聘职位的影响B.
求职者应答技巧
几乎任何业余爱好或者业余活动都有助于求职者更有效率地工作,如果能直接把业余活动与工作表现结合起来那就更好了。假如求职者从事的是销售工作,可以回答喜欢郊游、爬山等,而且要强调自己喜欢攀登高峰的感觉,因为这类活动会时刻提醒自己:“不要满足于现在所取得的成绩,一山还有一山高。”4.
讲述一个你没有发挥自身能力的事例
面试官考察项目
求职者对自身不足的认识
求职者总结与分析问题的能力B.
求职者应答技巧
一般情况下,面试官会根据求职者叙述的事例来判断求职者是否适合应聘的岗位。求职者作答时,应列举有能力但没有发挥好的事例,而不是没有能力的事例。求职者可以强调因“准备不足”、“某些客观条件”等影响发挥的事例。求职者可以试着这样回答:我刚参加工作时,第一次向总经理汇报工作,我只注意报告的内容,而没有料到总经理会问一些别的问题,当时感觉特别难堪,但也就是从这次事件开始,我无论向领导汇报工作还是向客户介绍产品都十分注意事前准备,每次都会多问自己几个“面试必问10类经典问题(10)
你如何评价你工作过的公司
面试官考察项目
求职者是否具有感恩的心态
求职者的职业道德B.
求职者应答技巧
当面试官在面试的时候问求职者这个问题时,有些求职者就不假思索地说了前任公司的很多坏话,结果可想而知,这种人是不会被录取的。因为这种人到了下一个公司还会有同样的心态出现。求职者在回答这个问题时,一定要怀着一颗感恩的心。例如求职者可以这样回答,尽管由于种种原因,我离开了原来工作过的企业,但我心里仍然感激它,因为那里是我工作开始的地方,使我完成了由“学生”到“员工”的转变,通过在那里的几年工作,让我对自己的职业发展有了更清醒的认识。问题4
说一说你认为理想的工作是什么如果你……
所推崇的职业价值观与企业的要求不一致,就很难在以后的工作中与企业其他成员形成合力,所以,面试官总是想了解一下求职者的人生目标和人生态度对职业选择的影响。你可能会面对的问题……
谈谈你对诚信的看法。
你想在这个职位上学到什么。
你在过去是怎样承担责任的?
谈谈你对某一竞争对手的看法。
你怎样看待要向比你年轻的人汇报工作?
你如何看待加班?
你为什么频繁地更换工作?
请告诉我,你为什么没有在原来的职位上得到提升?
你的座右铭是什么?
你是如何定义失败的?
你找工作时,最重视哪个方面?
工作中,你看到别人违反制度会怎么做?
在高薪、表彰和晋升之间,你认为哪个更有价值?
除本公司外,你还应聘了哪家公司?一、问题解析1.
面试官考你啥面试官希望听到的内容有哪些?
求职者评价最理想工作的标准
求职者的职业价值观
求职者职业价值观与应聘职位的切合度2.
求职者这样答
我理想中的工作包含三个层次:第一层次就是我能做自己想做、有兴趣而且也有能力完成的工作,这是最理想的工作状态;其次就是和自己的专业不对口,但是能做自己想做、有兴趣的工作,这样我会很高兴地去学习提高,而且提高也会很快,当然相应的收获也会更多。再次是虽然自己不太感兴趣,但具备专业知识和专业技能,能比较轻松胜任地工作,这样容易出成绩。比如我今天应聘的岗位,无论是专业还是兴趣都符合我心目中理想工作的第一层次。面试必问10类经典问题(11)
我认为理想的工作需要具备三个特点:一是这项工作要具有一定的挑战性,能够使自己获得一定的成就感,能够有机会得到客户的认可或得到同事和上司的认可;二是工作的环境是和谐的,同事之间应该有一个良好的合作环境,工作氛围应该是公平公正的;三是随着工作业绩的提升,应该有令人满意的经济回报,当然也包括一些休假等等。3.
面试官这样评
这是一类假设性质的问题,这个问题还可以理解为“你认为在什么条件下才能获得成功?”,如果求职者所描述的理想工作与某个空缺岗位的情况不符,面试官就会认为这位求职者将不会喜欢这个工作,未来的业绩也不会好。
示范一的回答,实质上是在迂回阐述自己对理想工作的认识,并没有回答理想工作是什么的问题,在对目标应聘企业或职位不是特别清楚的情况下,这是一种不错的选择。或者干脆回答:“本来就没有最理想的工作,任何工作都有其价值,就看我们抱着何种态度”;如果求职者应聘的是一个需要彰显个人能力的岗位(如销售等),冠冕堂皇地提出自己理想的工作也是可以的(诸如具有挑战性、良好的人际关系、广阔的发展前景、公平公正的工作氛围等等),这些都是考官希望听到的回答。二、问题引申1.
你期望获得的最重要回报是什么
面试官考察项目
求职者的职业价值观如何
求职者应聘的动机B.
求职者应答技巧
这也是一个考察职业价值观的问题,另一种提问方法是“在工作中,你把什么看得更重?”求职者在回答这个问题时,需要记住一个原则―“不要谈论金钱”。求职者可以回答“看重学习机会”、“发展机遇”、“满足感”等等。
例如,可以回答:“对于我来说,最重要的回报是为自己提供了一个能够施展抱负的平台,这样可以使自己获得一种满足感。”2.
谈谈你对“干一行,爱一行”的理解
面试官考察项目
求职者的职业价值观
求职者分析问题的能力B.
求职者应答技巧
有关这个问题的回答,在很大程度上可以反映求职者的职业价值观念。但无论赞成还是反对这一观点,都难免有失偏颇,而且很可能引起面试官的连环追问,最佳的解决方案是,带有辨正色彩地回答。
面试必问10类经典问题(12)
求职者可以先强调兴趣对工作的促进作用,如“兴趣是最好的老师”、“有了兴趣可以最大限度地发挥工作积极性”等等,而后,求职者一定要强调自己在以后的工作中,可以根据企业的需要做到“干一行,爱一行”。3.
你为什么频繁地更换工作
面试官考察项目
了解求职者工作的稳定性
求职者变更工作的原因B.
求职者应答技巧
这类问题主要是针对工作变更频繁的求职者提出的,所以被问到时,一定要十分谨慎地回答,因为面试官可能在担心你工作的持久性。
除非求职者有特殊原因,否则一定要对以前的行为有所“反省”,例如可以回答“以前由于年纪较轻,择业观非常不成熟,现在由于要承担更多的家庭责任,责任观也比以前成熟多了,再也不会有这种冲动的行为”等等。
“反省”之后,要强调自己对于一份稳定工作的渴望,以及由于以前的历练获得了比其他人更多的经验等等。4.
你是如何看待加班的
面试官考察项目
求职者对待工作的态度
求职者的工作态度是否符合应聘职位的特征B.
求职者应答技巧
随着市场竞争的日益激烈,某些性质的工作加班已变成家常便饭,求职者回答这个问题前,应该慎重考虑,面试官之所以提出这个问题,就意味着在将来的工作中可能会有一些加班。
如果求职者自身不便于加班或者非常厌恶加班,就应该直接回复面试官,当然这样也就意味着要拒绝这份工作,如果可以接受加班,最好这样回答:“我认为每一件工作都有固定时限,为了不影响进度,不需要等主管开口,自己最清楚是否有加班的必要,但是我会最大限度地避免这类加班的发生,因为这是没有效率的表现。同时,我也想强调一点,作为一名员工,对公司要求的加班或是临时机动的项目我会全力配合做好。”5.
请告诉我,你为什么从原单位离职
面试官考察项目
求职者是否为个人利益而跳槽面试必问10类经典问题(12)
求职者可以先强调兴趣对工作的促进作用,如“兴趣是最好的老师”、“有了兴趣可以最大限度地发挥工作积极性”等等,而后,求职者一定要强调自己在以后的工作中,可以根据企业的需要做到“干一行,爱一行”。3.
你为什么频繁地更换工作
面试官考察项目
了解求职者工作的稳定性
求职者变更工作的原因B.
求职者应答技巧
这类问题主要是针对工作变更频繁的求职者提出的,所以被问到时,一定要十分谨慎地回答,因为面试官可能在担心你工作的持久性。
除非求职者有特殊原因,否则一定要对以前的行为有所“反省”,例如可以回答“以前由于年纪较轻,择业观非常不成熟,现在由于要承担更多的家庭责任,责任观也比以前成熟多了,再也不会有这种冲动的行为”等等。
“反省”之后,要强调自己对于一份稳定工作的渴望,以及由于以前的历练获得了比其他人更多的经验等等。4.
你是如何看待加班的
面试官考察项目
求职者对待工作的态度
求职者的工作态度是否符合应聘职位的特征B.
求职者应答技巧
随着市场竞争的日益激烈,某些性质的工作加班已变成家常便饭,求职者回答这个问题前,应该慎重考虑,面试官之所以提出这个问题,就意味着在将来的工作中可能会有一些加班。
如果求职者自身不便于加班或者非常厌恶加班,就应该直接回复面试官,当然这样也就意味着要拒绝这份工作,如果可以接受加班,最好这样回答:“我认为每一件工作都有固定时限,为了不影响进度,不需要等主管开口,自己最清楚是否有加班的必要,但是我会最大限度地避免这类加班的发生,因为这是没有效率的表现。同时,我也想强调一点,作为一名员工,对公司要求的加班或是临时机动的项目我会全力配合做好。”5.
请告诉我,你为什么从原单位离职
面试官考察项目
求职者是否为个人利益而跳槽
考察求职者的职业道德情况B.
求职者应答技巧
考察求职者的职业道德情况B.
求职者应答技巧面试必问10类经典问题(14)
面试官这样评
回答示范一,通过主动了解应聘单位的相关信息,体现出对应聘单位和职位的兴趣,可显示出自己积极进取的态度。此类回答适用于强调制度约束以及对创新能力要求不高的行业和职位,如生产类职位、行政类职位等。
回答示范二,充分展示了自己对应聘职位和行业的浓厚兴趣,并突出了自己所具有的创新潜力。通过对公司创新产品的介绍,体现出对应聘单位和产品的了解,非常适合于对创新型行业和职位的应聘,包括技术研发、策划等。
作为面试官,不仅仅希望求职者口头表达对应聘企业的兴趣和了解,更希望能通过具体的数据和实例展现自己的感兴趣程度和了解程度。因此作为求职者,应当通过各类渠道了解求职单位的详细信息,让面试官感到“我都不甚了解的东西,你比我还清楚”。
在谈论用人单位时,态度要诚恳、谦和。不论大企业还是小企业,都有其优势和劣势,求职者应视其实际情况提出自己的见解,不要牵强附会,如果一味往对方脸上贴金,反而会令人反感。二、问题引申1.
如果有两家公司都录用了你,你会怎样选择
面试官考察项目
求职者职业选择的标准
求职者应聘该职位的决心B.
求职者应答技巧
其实这是一个不需要犹豫的问题,在未确定最后归属前,作为求职者一定要给面试官以肯定的答复,如果能给出恰当的选择理由,那是最好的。求职者可以这样回答,“贵公司是我的第一选择,我不敢奢望有两家公司同时看上我,即使有此情况,我还是首选贵公司。”或者干脆这样回答:“抱歉,我无法回答这个问题,因为我只投出了一份简历。”2.
你准备在这家公司干多久
面试官考察项目
求职者的工作持久性
求职者的职业发展目标与企业目标的一致性B.
求职者应答技巧
要回答好这个问题,求职者可以考虑强调自己目标专一的性格,以及希望继续提高自己的能力、为新工作单位做出有价值贡献的意愿。求职者可以给出一个大致的区间,如5~8年等,但要尽可能地长,此外,求职者应该强调,如果公司有需求,自己也会做出相应的调整,如“我会根据公司整体战略的调整做出我的调整,如果几年后公司面试必问10类经典问题(15)
这个职位最吸引你的地方是什么
面试官考察项目
求职者对应聘单位、职位的看法
求职者有无充分的准备B.
求职者应答技巧
求职者的回答应使面试官确认求职者具备应聘职位所要求的素质,同时,求职者也对这份工作充满了兴趣与期待。求职者一定要列举3~4个强有力的例子说明,但尽量不要提薪资待遇较高,可以回答诸如“这个职位拥有广阔的发展空间”、“这个职位可以经常接触客户,有利于提升自己的社交能力”等等。4.
你对本公司了解多少
面试官考察项目
求职者对待工作的态度
求职者对公司的了解程度B.
求职者应答技巧
求职者的回答在很大程度上反映了其对待工作的态度。如果仅仅以一句“不了解”或“不知道”草草了事,很可能失去一次工作机会。在条件允许的情况下,求职者应尽量在面试前广泛搜集面试单位的资料,以向面试官表明自己是“有备而来”。
求职者应该搜集的资料包括应聘单位成立的时间、规模、主要产品、主要客户、竞争对手等。5.
你为什么觉得自己能够在这个职位上取得成就
面试官考察项目
求职者应聘的动力和自信心
求职者是否具备职位所需的能力和素质B.
求职者应答技巧
求职者在回答这个问题时,必须表现出足够的自信,而且需要告诉面试官自己拥有足够的技能和知识来完成这项工作。例如,求职者可以强调,几年来,自己一直都在从事该领域的研究,并且十分关注贵公司(像贵公司三年来发表的主要研究成果,自己都一直在收集、整理),我确信自己已经具备了该职位所需的能力,所以,一直希望能获得一次面试的机会。问题6
我们为什么聘用你如果你……
和众多竞争对手同时角逐同一职位,面试官往往会通过这类问题来挖掘你的核心竞争力,从而帮助其做出聘用的决定(为你增加了成功的砝码)。你可能会面对的问题……
你能为我们做什么?
你有什么独特优势?
谈谈你的执行能力?仍需要我继续为公司做出贡献,我也会毫不犹豫。”3.面试必问10类经典问题(16)
你如何做好这项工作?
你能为公司带来什么?
如果你是我,会聘用你吗?
你如何面对这项工作中的困难?
为什么你是这份工作的最佳人选?
你认为你的资格适合我们的职位吗?
应聘的人很多,你与他们有什么不同?
你单独工作效率高,还是小组工作效率高?
你的核心竞争力/关键素质是什么?
你的知识、经验和能力足够干好这项工作吗?
要求你完成一项没有足够资源支持的工作,你怎么解决?
你能带来别的求职者不可能提供的新技能或新见解吗?
如果我们要录用你,你要多长时间才能为公司做出贡献?
我们有大量的求职者面试这份工作,我们为什么要聘用你?一、问题解析1.
面试官考你啥面试官希望听到的内容有哪些?
求职者独特的竞争优势
求职者的说服能力和自信心
求职者自身具备的感染力
求职者的换位思考能力2.
求职者这样答
我认为自己一定能够通过面试,最终被贵公司录用,原因有以下三点:一是丰富的工作经验,我曾经工作过的企业与贵公司业务完全一致,录用我之后,公司可省去许多岗位适应时间和培训费用;二是出色的工作业绩,过去三年内,我在原单位业绩一直都是名列所有业务人员之首,我想贵公司不会不喜欢一个“销售状元”吧;三是到贵公司工作的决心,为了全身心准备贵公司的面试,我在一个月前就已经从原公司辞职了。有了这三点,我想即使我是面试官也会录用自己的。
我虽没有工作经验,但却相信“知己知彼,百战不殆”这句话。所以我是对今天的面试有了充分的准备后,才来到这里面试的。无论是贵公司的竞争对手,还是客户的一些情况,我都有所关注,并且对贵公司所处行业的竞争形势也有了一定的分析(具体请见简历后附的文章)。当然,来这里面试也是做好了一定心理准备的,我知道我应聘的职位是需要承担一定心理压力的,而我面试必问10类经典问题(17)
面试官这样评
这是一个似乎很有挑战性的问题,也似乎是面试官最得意的一个问题。这个问题最能让求职者通过“据理力争”反映其说服力、感召力和竞争优势。求职者在回答时,一定要能够根据自身情况列举出几条强有力的能够说服面试官的理由。
对于一个有工作经验的人来说,过去的业绩就是最强有力的证明,回答示范一通过对自身过去工作业绩的介绍,辅之以对应聘职位的热忱,造成了一种“舍我其谁”的气势,没有给面试官留下任何可以拒绝的借口,其实,这也从侧面展现了求职者的自信心。
对于一个应届毕业生,显然不可能有显赫的业绩,但是一定通过自己的回答告诉面试官,自己是一个有心人,是一个可塑之才。回答示范二,就很好地展示了这一点。二、问题引申1.
你能提供哪些和这份工作最紧密相关的技能
面试官考察项目
求职者对应聘职位的了解
求职者对自身能力的认识B.
求职者应答技巧
求职者在回答这个问题前,一定要清楚应聘职位最核心的技能是什么,然后联系自己身上发生的一些案例,以支持自己具备职位所需的能力。例如,求职者可以这样回答,我知道我应聘的市场分析专员的职位,需要具备较强的数理分析能力,而我在上大学期间,虽然学的是市场营销专业,却对数学情有独钟,大三时,更是参加过全国数学建模大赛并取得了省级三等奖的名次,我之所以应聘市场分析专员这一职位,就是为了能够更好地发挥我这一专长。2.
做这份工作,你的缺点是什么
面试官考察项目
求职者对自身能力的认识
求职者是不是一个好学上进的人B.
求职者应答技巧
最好的方法是把问题转向,向面试官透露他所认为的缺点,然后借这个机会改变面试官的主意,向其展示自身对应聘职位的适应能力。求职者不要急于把自己现在的缺点告诉面试官,可以先跟他谈谈过去在工作方面有什么缺点,然后是如何克服它的。这样做是为了向面试官证明自己是一个乐于自我提高的人。当然,面试者也可以选择一个自己需要提升的方面向面试官介绍,而且还要告诉面试官,这份工作能够提高自己在特定方面的能力。
[经典面试题]
篇7:面试题
面试题精选
1、你的暑期打工工作是怎样找到的
所有招聘单位对有工作经历的应届毕业生都一致看好,无论参与过什么样的工作,一家就业服务机构的负责人说:“读书时期有过工作经历的人容易与人相处,他们会更好地安排时间,更务实,而且更成熟,与我们有更多的共同语言。”因此,在你应答时,要加上这样的内容:企业就是要创造利润,个人要更有效率地工作,遵章守纪,尽全力完成工作。简而言之,无论你的暑假工作多么微不足道,都要将其视为一段在企业的工作经历。
就具体的问题而言,主试人的提问是为了理想地反映出你的主动性、创造性与灵活性。例如,你可以说:“在我家乡的小镇上,找一份暑假工作并不容易,但我向每家餐馆都申请做招待工作,给各家的经理打电话预约面试,最后在一家最有名气的餐馆找到一份工作。我先做下午班,后来因为我手脚麻利,算账准确,并有让顾客满意的服务水平,他们很快就把我转到晚班了。我在那儿干了三个暑假,当我离开的'时候,我负责培训、管理夜班服务员,分配小费收入,以及晚上的收工打烊与记账。总之,我的这段经历使我了解小型企业以及企业中具有共性的一些机理。”
2、你如何规划自己未来的事业
这是下列问题的有趣翻版:“你在今后的五年中要达到什么职位?”几乎所有初级专业人士都会落入这个圈套中,答道:“管理阶层”,因为他们自以为可以以此能表明其雄心壮志,
这是一个老掉牙的答案,这会立即引发一系列大多数据应届毕业生无法回答的问题:管理阶层的定义是什么?一个经理的基本责任是什么?做什么领域的经理?最保险的回答应该先说明你要发展或进取的专业方向,并表明你脚踏实地地工作态度。“我的事业计划是勇于进取,所做的事情必须是能够将我的精力与专业知识融入我所在行业与我的工作单位所需要的地方。因此,我希望在今后几年中,成为一名内行的专业人士,很清楚地理解自己的公司、行业、最大的挑战以及机会之所在。到那时,我未来的发展目标应该会清晰地显露出来。”类似于这样的应答会使你远远地高于你的同龄人。
3、你是否愿意做常规工作
又是一个“诱供”的提问。主试人从以往痛苦的经历中体会到,新近毕业的大学生不愿做常规工作,是一些无望成材的员工,直到他们接受了现实生活中的这个事实后才会有改变。你应向对方解释,你理解需要有人做常规工作,在你奉命完成更有责任的工作之前,你知道要先完成一定数量的日常常规工作,这也是你有准备接受这项必要的工作的原因。
篇8:面试题
这是我以前收到的一家公司的面试邀请邮件. 面试前还要过五官斩六将的.第一次看到这样叹为观止的面试题,想发到天涯让大家欣赏.可惜天涯不让发.说是违法相关规定.只有到微博试试看咯.
当然我没回复这家公司.
任务1:(根据客人的询盘用英文做回复)
Subject: Inquiry about your product
DEAR MARKETING DEpT
We have a UREGENTLY ENQUIREY for USA MARKET of Blood pressure Monitor Bp-102 as photos
Client Need Exact Model and Models which are very similiar, If you can supply . pLEASE GIVEN YOUR QUOTE SHEET WITH FULL DETAILS OF BEST & FINAL pRICES BASED ON Min Qty and 1x45ft cotnainer and sent us your product pICTURE BY JpG FORMAT, FULL pRODUCT SpECIFICATION , pACKING DETIAL, MIN QTY , CONTAINER QTY IN 45FT AND DELVIERY, AND FIX IT ALL DETIAL IN YOUR QUOTE SHEET REpLY US BY RETURN EMAIL URGENTLY BY TODAY, IF pOSSIBLE.
THANKS AND BEST REGARDS
DAISY
任务2:(根据您的经历尽可能填写,英文回答更佳)
请讲讲你遇到的最困难的销售经历,你是怎样劝说客户购买你的产品的?
人们购买产品的三个主要原因是什么?
关于我们的产品生产线和我们的客户群体,你了解多少?
关于销售,你最喜欢和最不喜欢的是什么?为什么?
若受到奖励,你有什么感想?
你最典型的一个工作日是怎样安排的?
为取得成功,一个好的销售人员应该具备哪四方面的素质?你为什么认为这些素质是十分重要的?
邮件推销和面对面的推销有什么区别?为使邮件推销成功,需要什么样的特殊技能和技巧?
在你的前任工作中,你用什么方法来发展并维持业已存在的客户的?
若你给新员工上一堂销售课程,你在课堂上要讲些什么?为什么?
请讲一下你在前任工作中所使用的最典型的销售方法和技巧。
讲一个这样的经历:给你定的销售任务很大,完成任务的时间又很短,你用什么办法以确保达到销售任务目标的?
你是否有超额完成销售目标的时候,你是怎样取得这样的业绩的?
一般而言,从和客户接触到最终销售的完成需要多长时间?这个时间周期怎样才能缩短?
你怎样才能把一个偶然的购买你产品的人变成经常购买的人?当你接管了一个新的行销区或一新的客户群时,怎样才能使这些人成为你的固定客户?在写推销邮件时,提前要做哪些准备?
你怎样处理与销售活动无关的书面工作?
请向我推销一下这支铅笔。
你认为推销邮件最重要的特点是什么?为什么?
和业已存在的老客户打交道,以及和新客户打交道,你更喜欢那种?为什么?
如果某位客户一直在购买和你的产品相似,但价格却很低于你的产品,你该怎样说服这个客户购买你的产品?
具备什么样的素质和技能才能使你从众多的销售人员中脱颖而出?
假如你遇到这样一种情况:你的产品和服务的确是某公司需要的,但是那个公司内部很多人士强烈要求购买质量差一些但价格便宜的同种产品。客户征求你的意见,你该怎样说?
[面试题]
篇9:数据处理软件开发简历
目前所在: 广州 年 龄: 22
户口所在: 广州 国 籍: 中国
婚姻状况: 未婚 民 族: 汉族
培训认证: 未参加 身 高: 161 cm
诚信徽章: 未申请 体 重: 45 kg
人才测评: 未测评
我的特长:
求职意向
人才类型: 应届毕业生
应聘职位: 数据库工程师/管理员:数据库管理开发人员,软件工程师:程序员,ERP技术开发:
工作年限: 0 职 称: 无职称
求职类型: 实习可到职日期: 一个月
月薪要求: 1000以下 希望工作地区: 广州,广州,广州
工作经历
志愿者经历
教育背景
毕业院校: 广州大学华软软件学院
最高学历: 大专 获得学位: 毕业日期: 2010-07
专 业 一: 数据处理软件开发 专 业 二:
起始年月 终止年月 学校(机构) 所学专业 获得证书 证书编号
2007-09 2010-07 广州大学华软软件学院 数据处理软件开发 - -
语言能力
外语: 英语 良好 粤语水平: 精通
其它外语能力:
国语水平: 良好
工作能力及其他专长
本人是一名大二女学生,现就读于广州大学华软软件学院。对IT行业很感兴趣,希望通过寒假到贵公司实习,愿从基层做起,不求薪酬回报。
本人所学的专业是数据处理软件开发,想在贵公司实习的岗位是数据库开发与管理。一直热爱研究SQL SERVER2005,ORACLE数据库管理,C#编程,ERP开发工作。英语有较好的阅读和读写能力,熟悉数据库基本操作和SQL语句,了解一般的编程语言(如C++,office,vb),能熟练使用Visual Studio 2005,最熟练使用C#进行编程,具有良好的逻辑思维能力。本人自知学习的知识面还有待拓宽,实践机会也非常的.少,希望能通过寒假到贵公司实习,为日后的人生道路打下良好的基础。因为我始终觉得在学校学习不能与企业实践相比,社会才是一所真正的大学。实习也正是本人希望得到一个更好的学习机会。
详细个人自传
我是一位热爱数据库的女生,对自己的工作充满激情且能够很好地完成自己的工作,做事比较细心,有恒心,有耐心。在思想上,积极上进,不时地对自己作检讨,找出不足之处,进而不断改善,力求做到最好。在日常生活里,我为人正直善良,有良好的生活作风,乐于帮助他人,同学相处融洽,交友面广,人际交往能力较强,受同学欢迎。本人刻苦耐劳,做事认真负责,具有较强的团队协作能力和沟通能力,在学校的学习过程中,明白到一个企业要想取得长远的发展,就必须要有一个良好的合作团队。
但我始终觉得在学校学习不能与企业实践相比,社会才是一所真正的大学。我自知没有实足的经验,但我相信我有着这份学习的心和对数据库的热爱一定能把工作做好。并且希望通过在贵公司的学习,能在以后的理论与实际结合中有更大的提高。愿能为贵公司奉献自己的所学之识,请给我一个锻炼的机会。
更多推荐
数据处理面试题
发布评论