计算机专业求职面试问题计算机专业求职面试问题
1、线形表a、b为两个有序升序的线形表,编写一程序,使两个有序线形表合并成一个有序升序线形表h;
2、运用四定理,为N个局域举行配,颜为1、2、
3、4四种,另有数组adj[][N],如adj[i][j]=1则表示i区域与j区域相邻,数组color[N],如
color[i]=1,表示i区域的颜为1号颜。
3、用递归算法判断数组a[N]是否为一个递增数组。
4、编写算法,从10亿个浮点数当中,选出其中最大的10000个。
5、编写一unix程序,防止僵尸进程的出现.
同学的4道面试题,应聘的职位是搜索引擎工程师,后两道超级难,(希望大家多给一些算发)
1.给两个数组和他们的大小,还有一动态开辟的内存,求交集,把交集放到动态内存dongtai,并且返回交集个数
long jiaoji(long* a[],long b[],long* alength,long blength,long* dongtai[])
2.单连表的建立,把'a'--'z'26个字母插入到连表中,并且倒叙,还要打印!
3.可怕的题目终于来了
象搜索的输入信息是一个字符串,统计300万输入信息中的最热门的前十条,我们每次输入的一个字符串为不超过255byte,内存使用只有1G,
请描述思想,写出算发(c语言),空间和时间复杂度,
4.国内的一些帖吧,如baidu,有几十万个主题,假设每一个主题都有上亿的跟帖子,怎么样设计这个系统速度最好,请描述思想,写出算发(c语言),空间和时间复杂度,
时间问题,我不发代码了,但这些问题书上都有,我给你说一下书名
1、线形表a、b为两个有序升序的线形表,编写一程序,使两个有序线形表合并成一个有序升序线形表h;
答案在请化大学严锐敏《数据结构第二版》第二章例题(有错字不好意思下同)
2、运用四定理,为N个局域举行配,颜为1、2、
3、4四种,另有数组adj[][N],如adj[i][j]=1则表示i区域与j区域相邻,数组color[N],如
color[i]=1,表示i区域的颜为1号颜。
答案在中国水利出版社引进的一套国外《数据结构》教材上,单兰的封皮(这套书包括操作系统(利用的minux),多媒体都有,估计有年岁了)
3、用递归算法判断数组a[N]是否为一个递增数组。
这个我没在教才上看到过但不难!!
一会贴代码
4、编写算法,从10亿个浮点数当中,选出其中最大的10000个。
用外部排序,在《数据结构》书上有!!!
5、编写一unix程序,防止僵尸进程的出现.
你说的僵尸进程是死锁吗?unix程序我不会
1.给两个数组和他们的大小,还有一动态开辟的内存,求交集,把交集放到动态内存dongtai,并且返回交集个数
long jiaoji(long* a[],long b[],long* alength,long blength,long* dongtai[])
这个我没在教才上看到过但不难!!
一会贴代码
2.单连表的建立,把'a'--'z'26个字母插入到连表中,并且倒叙,还要打印!
这个有点读不懂
3.可怕的题目终于来了
象搜索的输入信息是一个字符串,统计300万输入信息中的最热门的前十条,我们每次输入的一个字符串为不超过255byte,内存使用只有1G,
请描述思想,写出算发(c语言),空间和时间复杂度,
的确可怕,
字符串数组怎么转成byte
4.国内的一些帖吧,如baidu,有几十万个主题,假设每一个主题都有上亿的
跟帖子,怎么样设计这个系统速度最好,请描述思想,写出算发(c语言),空间和时间复杂度.
的确可怕,
1、线形表a、b为两个有序升序的线形表,编写一程序,使两个有序线形表合并成一个有序升序
二路归并,不难
2、运用四定理,为N个局域举行配,颜为1、2、
3、4四种,另有数组adj[][N],如adj[i][j]=1则表示i区域与j区域相邻,数组color[N],如
color[i]=1,表示i区域的颜为1号颜。
可转化位图论问题,将各个区域视为图上的点,相邻的点之间连上一条线,构成一个无向图,可得其邻接矩阵,根据邻接矩阵得数.
3、用递归算法判断数组a[N]是否为一个递增数组。
楼上有正解
4、编写算法,从10亿个浮点数当中,选出其中最大的10000个。
用快排.可先从10亿个浮点数当中选出第10000大的数,设位M,在选M位基值,利用一趟快速排序,M
之后的数即为所求.
1.给两个数组和他们的大小,还有一动态开辟的内存,求交集,把交集放到动态内存dongtai,并且返回交集个数
long jiaoji(long* a[],long b[],long* alength,long blength,long* dongtai[])
我想到的是蛮力法,时间复杂度位O(alength*blength);想必大家都知道了!
2.单连表的建立,把'a'--'z'26个字母插入到连表中,并且倒叙,还要打
印!
在创建单链表的时候使之逆序,不难.
3.可怕的题目终于来了
象搜索的输入信息是一个字符串,统计300万输入信息中的最热门的前十条,我们每次输入的一个字符串为不超过255byte,内存使用只有1G,
请描述思想,写出算发(c语言),空间和时间复杂度,
255byte*300万<1G;也就是说可全部调进输入信息,利用PAGERANK算法实行频率统计,排序即可.
注:PAGERANK算法受google专利保护,看不到源代码.
1、线形表a、b为两个有序升序的线形表,编写一程序,使两个有序线形表合并成一个有序升序线形表h;
已知:a[0]<a[1]  ...a[n-1]<a[n];
b[0]<b[1]  ...b[n-1]<b[n];
一、a[n]<b[0]
二、b[n]<a[0]
三、插入排序&&二分排序
main()
{
int i,j,k;
int h[20];
int a[10]={2,5,6,9,11,24,56,78,80,81};
int b[10]={1,3,8,7,10,21,32,45,65,79};
i=0;
j=0;
for(k=0;k<20;k++)
if(a[i]>b[j])
{ h[k]=b[j];j++;}
else
{ h[k]=a[i];i++;}
for(i=0;i<20;i++)
printf("%d ",h[i]);
getch();
}
//单连表的建立,把'a'--'z'26个字母插入到连表中,并且倒叙,还要打印!
node *p = NULL;
node *q = NULL;
node *head = (node*)malloc(sizeof(node));
head->data = ' ';head->next=NULL;
node *first = (node*)malloc(sizeof(node));
first->data = 'a';first->next=NULL;head->next = first;
p = first;
int longth = 'z' - 'b';
int i=0;
while ( i<=longth )
{
node *temp = (node*)malloc(sizeof(node));
temp->data = 'b'+i;temp->next=NULL;q=temp;
head->next = temp; temp->next=p;p=q;
i++;
}
print(head);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。