百度2012笔试题

来源:互联网 发布:gps巡线软件 编辑:程序博客网 时间:2024/04/28 17:35
一简答
1 linux/unix远程登陆都用到了ssh服务,当网络出现错误时服务会中断,linux/unix端的程序会停止。为什么会这样?说下ssh的原理,解释中断的原理。
2一个最小堆,也是完全二叉树,用按层遍历数组表示。
1. 求节点a[n]的子节点的访问方式
2. 插入一节点的程序void add_element(int *a,int size,int val);
3. 删除最小节点的程序。
3 关于hash,有表A,用100%表示,它的粒子度是0.1%,同样的表B,两张表组成一层。要将A均匀映射到B,B的每10%里面有1%对应该于A的10%。另一问,如果有超过十层以上,要实现它们之间的这种映射,hash函数应该怎么实现。

二算法
1有一个数,比如N=123,一共有三位,所有位的值加起来是6。我们找出另外一个数141,也是三位,所有位加起来也是6,这样和123有同样关系的数还有很多,我们将求一个有这种关系并且是所有数中只比基123刚刚好大的数定义为F(N)。如果不存在,则F(N)=-1.现在有一个数n,它的位数小于1000.它的值小于10^500.求F(F(N))=-1。不记得问什么了?是问迭代过程怎么实现还是问什么时候停止的。反正是一个迭代
2 求一个全排列函数:
如p([1,2,3])输出:
[123],[132],[213],[231],[321],[323].
 求一个组合函数
如p([1,2,3])输出:
[1],[2],[3],[1,2],[2,3],[1,3],[1,2,3]
这两问可以用伪代码。
三设计
 有两个十亿数据的表,表是xxID,xx,xx,xx之类的几个项,存的是url之类的,只说是存到硬盘的,中间没说内存限制什么的。
其中有一问是实现数据查找中的and ,or ,sub(与集, 交集,差集) 。其中要实现and(sub())之类的功能。
还有并行实现…不记得了。

另外一问是当查找(比如and运算)出前100位时,怎么让它停下来,不要再查找了。怎么实现这种高效查找前100位的运算。



                                                                                  2012 移动终端笔试题

刚刚参加完笔试,真是一场洗礼啊,太难了。下面我回忆下今天遇到的题目。(济南)
总共是四道大题:
1 利用互斥量和条件变量设计一个消息队列,具有以下功能:
   1 创建消息队列(消息中所含的元素)
   2 消息队列中插入消息
   3 取出一个消息(阻塞方式)
   4 取出第一消息(非阻塞方式)
注意:互斥量、条件变量和队列又系统给定

2用非递归方法完成二叉树的周游

3讲下cnwap和cnnet的区别

4设计一个内存管理策略,要求可以保证多线程时的安全,防止内存越界等,效率不低于malloc/free函数

就这些吧,感觉就是云里雾里,。


共四道道(深圳)
1. 简述线性表 二叉平衡树 哈希表存储数据时的优劣
2.简答:一个十进制数m转化N进制,N属于[1, 16]。
3.读程序(程序我只记得个大概)
#include<iostream>

using namespace std;

int var_1=0;
char *pvar_1=NULL;
int main()
{
    int var_2;
    char str[]="abe";
    char *p="efs";
    int *kk=vector<int >;
    kk=new *int 
   p =(char *)malloc(20);
    if(p==NULL)
       printf("dfdf");
    if(kk==NULL)
      pritnf("ddfdsfds");
    if(kk!=NULL)
      free (kk)
    if(p!=NULL)
      delete p;
}
1.c程序存储分类;
2.var_1 var_2 str p kk "efs" "abe"分别存储在什么地方
3.p分配失败程序会怎样
4.  free (kk)   delete p;有什么不妥,两种释放方式异同点?


四。系统设计题(40分)
对已排好序的数组A,一般来说可用二分查找 可以很快找到。
现有一特殊数组A[],它是循环递增的,如A[]={ 17 19 20 25 1 4 7 9},
试在这样的数组中找一元素x,看看是否存在。
请写出你的算法,必要时可写伪代码,并分析其空间 时间复杂度。

0 0