计算机专业求职面试问题_第1页
计算机专业求职面试问题_第2页
计算机专业求职面试问题_第3页
计算机专业求职面试问题_第4页
计算机专业求职面试问题_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机专业求职面试问题计算机专业求职面试问题1、线形表a、b为两个有序升序的线形表,编写一程序,使两个有序线形表合并成一个有序升序线形表h;2、运用四色定理,为N个局域举行配色,颜色为1、2、3、4四种,另有数组adjN,如adjij=1则表示i区域与j区域相邻,数组colorN,如colori=1,表示i区域的颜色为1号颜色。3、用递归算法判断数组aN是否为一个递增数组。4、编写算法,从10亿个浮点数当中,选出其中最大的10000个。5、编写一unix程序,防止僵尸进程的出现.同学的4道面试题,应聘的职位是搜索引擎工程师,后两道超级难,(希望大家多给一些算发)给两个数组和他们的大小,还有一动

2、态开辟的内存,求交集,把交集放到动态内存dongtai,并且返回交集个数longjiaoji(long*a,longb,long*alength,longblength,long*dongtai)单连表的建立,把a-z26个字母插入到连表中,并且倒叙,还要打印!可怕的题目终于来了象搜索的输入信息是一个字符串,统计300万输入信息中的最热门的前十条,我们每次输入的一个字符串为不超过255byte,内存使用只有1G,请描述思想,写出算发(c语言),空间和时间复杂度,国内的一些帖吧,如baidu,有几十万个主题,假设每一个主题都有上亿的跟帖子,怎么样设计这个系统速度最好,请描述思想,写出算发(c语言

3、),空间和时间复杂度,时间问题,我不发代码了,但这些问题书上都有,我给你说一下书名1、线形表a、b为两个有序升序的线形表,编写一程序,使两个有序线形表合并成一个有序升序线形表h;答案在请化大学严锐敏数据结构第二版第二章例题(有错字不好意思下同)2、运用四色定理,为N个局域举行配色,颜色为1、2、3、4四种,另有数组adjN,如adjij=1则表示i区域与j区域相邻,数组colorN,如colori=1,表示i区域的颜色为1号颜色。答案在中国水利出版社引进的一套国外数据结构教材上,单兰色的封皮(这套书包括操作系统(利用的minux),多媒体都有,估计有年岁了)3、用递归算法判断数组aN是否为一个

4、递增数组。这个我没在教才上看到过但不难!一会贴代码4、编写算法,从10亿个浮点数当中,选出其中最大的10000个。用外部排序,在数据结构书上有!5、编写一unix程序,防止僵尸进程的出现.你说的僵尸进程是死锁吗?unix程序我不会给两个数组和他们的大小,还有一动态开辟的内存,求交集,把交集放到动态内存dongtai,并且返回交集个数longjiaoji(long*a,longb,long*alength,longblength,long*dongtai)这个我没在教才上看到过但不难!一会贴代码单连表的建立,把a-z26个字母插入到连表中,并且倒叙,还要打印!这个有点读不懂可怕的题目终于来了象搜

5、索的输入信息是一个字符串,统计300万输入信息中的最热门的前十条,我们每次输入的一个字符串为不超过255byte,内存使用只有1G,请描述思想,写出算发(c语言),空间和时间复杂度,的确可怕,国内的一些帖吧,如baidu,有几十万个主题,假设每一个主题都有上亿的跟帖子,怎么样设计这个系统速度最好,请描述思想,写出算发(c语言),空间和时间复杂度.的确可怕,1、线形表a、b为两个有序升序的线形表,编写一程序,使两个有序线形表合并成一个有序升序二路归并,不难2、运用四色定理,为N个局域举行配色,颜色为1、2、3、4四种,另有数组adjN,如adjij=1则表示i区域与j区域相邻,数组colorN,

6、如colori=1,表示i区域的颜色为1号颜色。可转化位图论问题,将各个区域视为图上的点,相邻的点之间连上一条线,构成 TOC o 1-5 h z 一个无向图,可得其邻接矩阵,根据邻接矩阵得色数.3、用递归算法判断数组aN是否为一个递增数组。楼上有正解4、编写算法,从10亿个浮点数当中,选出其中最大的10000个。用快排.可先从10亿个浮点数当中选出第10000大的数,设位M,在选M位基值,利用一趟快速排序,M之后的数即为所求.给两个数组和他们的大小,还有一动态开辟的内存,求交集,把交集放到动态内存dongtai,并且返回交集个数longjiaoji(long*a,longb,long*ale

7、ngth,longblength,long*dongtai)我想到的是蛮力法,时间复杂度位O(alength*blength);想必大家都知道了!单连表的建立,把a-z26个字母插入到连表中,并且倒叙,还要打印!在创建单链表的时候使之逆序,不难.可怕的题目终于来了象搜索的输入信息是一个字符串,统计300万输入信息中的最热门的前十条, TOC o 1-5 h z 我们每次输入的一个字符串为不超过255byte,内存使用只有1G,请描述思想,写出算发(c语言),空间和时间复杂度,255byte*300万1G;也就是说可全部调进输入信息,利用PAGERANK法实行频率统计,排序即可.注:PAGERA

8、N算法受google专利保护,看不到源代码.1、线形表a、b为两个有序升序的线形表,编写一程序,使两个有序线形表合并成一个有序升序线形表h;已知:a0a1.an-1an;b0b1.bn-1bn;anb0bna0三、插入排序&二分排序main()inti,j,k;inth20;inta10=2,5,6,9,11,24,56,78,80,81;intb10=1,3,8,7,10,21,32,45,65,79;i=0;j=0;for(k=0;kbj)hk=bj;j+;elsehk=ai;i+;for(i=0;idata=;head-next=NULL;node*first=(node*)malloc

9、(sizeof(node);first-data=a;first-next=NULL;head-next=first;p=first;intlongth=z-b;inti=0;while(idata=b+i;temp-next=NULL;q=temp;head-next=temp;temp-next=p;p=q;i+;print(head);其实第四题这样的题目楼上没有人说对。说是从10亿个数中选,实际上是说数很多。当然用外部排序是一个方法。估计想考的是看你会不会二叉排序树。10000个最大的数,就是10000个结点,这个内存是可以装下的。但10亿个数就要从外部文件读出来了。每读入一个/组,就

10、试图将之放入排序树中。等10亿个数全读完了,10000个结点按中序输出就行了。我还在CSDa见过类似的题目,答案也是二叉排序树,好像没人回答出来。象搜索的输入信息是一个字符串,统计300万输入信息中的最热门的前十条,我们每次输入的一个字符串为不超过255byte,内存使用只有1G,请描述思想,写出算发(c语言),空间和时间复杂度,这道题不是很难吧,用哈希的方法,将这些字符串哈希到不同的桶中,然后判断那个最多就行了关于第4题的我写的程序#include#defineMAX1000000/设置总数,我这里设置了一百万,也可以到一千万,一亿的话内存受不了,但是我的程序是串行读出数据的,所以也是可以处

11、理更大的数据的,这里全部放在数据里是为了方便#defineTOP1000voidquicksort(intarray,intleft,intright)if(leftright)intdiv=arrayright;inti=left;intj=right-1;inttemp;if(i=j)/只有两个数据,直接处理完了事if(arrayidiv)arrayi+1=arrayi;arrayi=div;return;elsewhile(idiv;i+);for(;arrayj=j)break;temp=arrayi;arrayi=arrayj;arrayj=temp;if(i!=right)arra

12、yright=arrayi;arrayi=div;quicksort(array,left,i-1);quicksort(array,i+1,right);intmain()int*Big=newintMAX;int*pSort=newintTOP*4;/最好pSort0-pSortTop-1为结果inti=0,j=TOP,k=0;inth=0;intall=0;/Big数据计数器srand(time(NULL);for(i=0;iMAX;i+)/intjj=rand()%77+1;/intnn=rand()%jj;Bigi=rand();/coutBigi;/可加入一些测试数据,看看大的能否

13、排到前面Big0=100000;Big10=300002;Big11=200002;BigMAX-2=200007;inttemp=Big0;for(all=0;allTOP;all+)pSortall=Bigall;quicksort(pSort,0,TOP-1);/for(k=0;kTOP-1;k+)coutpSortk;/coutendl;temp=pSortTOP-1;i=TOP-1;j=TOP*2;intsum=0;for(all=TOP;alltemp)sum+;pSorti+=Bigall;if(i=TOP*2)/i满TOP*2了sum+=3;i=0;j=TOP*2;inttem

14、p2=pSortTOP*2-1;for(intn=0;ntemp2)if(i!=n)pSorti=pSortn;/大的放到pSort前部分i+;elsepSortj+=pSortn;/小的放到pSort后部分if(iTOP)/i100,选的分割数比较大,重新选择排在100名后的作为分割数while(iTOP)sum+=5;pSorti+=temp2;j-;temp2=pSortj;k=TOP*2;h=TOP*2;for(;ktemp2)pSorti+=pSortk;elseif(h!=k)pSorth=pSortk;h+;j=h;/i100了,选择排在100名后的分割数的.操作完毕sum+;t

15、emp=temp2;coutendlsumijendl;/这里是全排序输出前TOPt,看看后面的结果是否和这个相同,但必须在MAX值比较小才可以执彳T,否则堆栈溢出/*quicksort(Big,0,MAX-1);for(k=0;kTOP;k+)coutBigk;coutendl;coutendl;*/输出前TOP个quicksort(pSort,0,i-1);for(k=0;kTOP;k+)coutpSortk;getchar();deleteBig;deletepSort;return0;算法的题不难啊。我说个思路吧:1、线形表a、b为两个有序升序的线形表,编写一程序,使两个有序线形表合并

16、成一个有序升序线形表h;这个问题和下面那个第一题本质是一样的,我=一起说。3、用递归算法判断数组aN是否为一个递增数组。这个就是每次拿最后一个和边界上的比下缩小规模,没难度。4、编写算法,从10亿个浮点数当中,选出其中最大的10000个。外部排序5、编写一unix程序,防止僵尸进程的出现.和算法没关系。我不会。给两个数组和他们的大小,还有一动态开辟的内存,求交集,把交集放到动态内存dongtai,并且返回交集个数先排序O(N*LOG(NJ),然后进行的步骤和第一题一样就对了。对这题是:取小头,比较,一样进内存,不一样小的扔O(N)内完成。加上排序O(N*LOG(NJ)搞定。对上面那题不用讲应该

17、都知道了,就是比完合并就行了。单连表的建立,把a-z26个字母插入到连表中,并且倒叙,还要打印!链表是基本功,没什么好说的。象搜索的输入信息是一个字符串,统计300万输入信息中的最热门的前十条,我们每次输入的一个字符串为不超过255byte,内存使用只有1G,请描述思想,写出算发(c语言),空间和时间复杂度,我不知道。不过你算下就知道空间肯定是够的:全部装入都够(当然我们不会这么做)4.国内的一些帖吧,如baidu,有几十万个主题,假设每一个主题都有上亿的跟帖子,怎么样设计这个系统速度最好,请描述思想,写出算发(c语言),空间和时间复杂度,我不知道。没学过着方面知识楼上几个朋友回排序的,我们一

18、起来讨论一个问题。结果要求的是10000个排好顺序的数而已,并没有要求你把10亿个数都拿出来排序。所以更有效率的思路应当是1、读入的头10000个数,直接创建二叉排序树。O(1)2、对以后每个读入的数,比较是否比前10000个数中最小的大。(N次比较)如果小的话接着读下面的数。O(N)3、如果大,查找二叉排序树,找到应当插入的位置。4、删除当前最小的结点。5、重复步骤2,直到10亿个数全都读完。6、按照中序遍历输出当前二叉排序树中的所有10000个数字。基本上算法的时间复杂度是O(N)次比较算法的空间复杂度是10000(常数)我来回答后面两道“难题”吧:最近时有公司出这种从几百万词条中找出频率最大的前几条或者重复的条目的问题。对于这种问题实际上并不需要太多所谓的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论