1 / 15
文档名称:

计算机专业求职面试问题.docx

格式:docx   大小:31KB   页数:15页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

计算机专业求职面试问题.docx

上传人:fangjinyan201701 2022/3/9 文件大小:31 KB

下载得到文件列表

计算机专业求职面试问题.docx

文档介绍

文档介绍:计算机专业求职面试问题
计算机专业求职面试问题
1、线形表a、b为两个有序升序的线形表,编写一程序,使两个有序线形表合
并成一个有序升序线形表h;
2、运用四色定理,为N个局域举行配色,颜色为1、2、3、4四种,另有数组
adj[,long*alength,longblength,long*dongtai[])
我想到的是蛮力法,时间复杂度位O(alength*blength);想必大家都知道了!
单连表的建立,把'a'--'z'26个字母插入到连表中,并且倒叙,还要打
印!
在创建单链表的时候使之逆序,不难.
可怕的题目终于来了
象搜索的输入信息是一个字符串,统计300万输入信息中的最热门的前十条,
我们每次输入的一个字符串为不超过255byte,内存使用只有1G,
请描述思想,写出算发(c语言),空间和时间复杂度,
255byte*300万<1G;也就是说可全部调进输入信息,利用PAGERANK法实行频率统计,排序即可.
注:PAGERAN算法受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()
{
inti,j,k;
inth[20];
inta[10]={2,5,6,9,11,24,56,78,80,81};
intb[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;
intlongth='z'-'b';
inti=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);
其实第四题这样的题目楼上没有人说对。
说是从10亿个数中选,实际上是说数很多。当然用外部排序是一个方法。
估计想考的是看你会不会二叉排序树。
10000个最大的数,就是10000个结点,这个内存是可以装下的。
但10亿个数就要从外部文件读出来了。每读入一个/组,就试图将之放入排序
树中。等10亿个数全读完了,10000个结点按中序输出就行了。
我还在CSDa见过类似的题目,答案也是二叉排序树,好像没人回答出来。
象搜索的输入信息是一个字符串,统计300万输入信息中的最热门的前十条,
我们每次输入的一个字符串为不超过255byte,内存使用只有1G,
请描述思想,写出算发(c语言),空间和时间复杂度,
这道题不是很难吧,用哈希的方法,将这些字符串哈希到不同的桶中,然后判
断那个最多就行了
关于第4题的我写的程序
#include<iostream>
#defineMAX1000000//设置总数,我这里设置了一百万,也可以到一千
万,一亿的话内存受不了,但是我的程序是串行读出数据的,所以也是可以处理更
大的数据的,这里全部放在数据里是为了方便
#defineTOP1000
voidquicksort(intarray[],intleft,intright)
{
if(left<right)
{
intdiv=array[right];
inti=left;
intj=right-1;
inttemp;
if(i==j){//只有两个数据,直接处理完了事
if(array[i]<div)
{
array[i+1]=array[i]