2009.10.18百度技术笔试题

一。简述链表和数组各自的优缺点。
二。程序题,程序大概如下,a为一个字符串数组,字符串中每个字符都是介于'a'到'z'的小写字母,且字符串长度不超过20。
        (a)描述bbb函数的功能(可用一句话)。
        (b)假设N=7,且a={"cafe","baidu","recuit","thisone","iseasy","*******","*****"}(有两个字符不记得了....),写出输出结果。
        (c)写出bbb函数的时间复杂度(用N表示)。
        (d) 好像是bbb函数优化提高算法效率之类的。
        int aaa(char* b1,char* b2)
        {
             char g[26];
             int i;
             for(i=0;i<26;++i)
                 g=0;
             for(i=0;i<26;++i)
                 g[b1-'a']++;            
             for(i=0;i<26;++i)
                 g[b2-'a']--;
             for(i=0;i<26;i++)
            {
                  if(g)
                      return 0;
             }
                    return 1;
       }


        int bbb(char a[N][20])
       {
             int f[N];
             int i,j;
             for(i=0;i<N;i++)
                 f=0;
             for(i=0;i<N;i++)
            {
                   if(!f)
                        f=1;
                   printf("%s",a);
                   for(j=i+1;j<N;j++)
                  {
                        if(aaa(a,a[j]))
                        {
                              f[j]=1;
                              printf("%s",a[j]);
                         }
                        printf("/n");
                   }
             }
         }

三。魔术师抽出16张牌,红心A,4,Q;黑桃J,8,4,7,2,3;草花K,4,Q,5,6;方块A,5。然后魔术师从中随意抽出一张牌,叫两观众上去,将点数告诉了观众甲,将花色告诉了观众乙。
      甲:我不知道这张牌。
      乙:我知道你不知道这张牌。
      甲:我知道这张牌了。
      乙:我也知道了。
      请问从这四句话中你能判断是哪一张牌?

四。用递归和非递归的方法写出树的先序遍历,需为可执行的代码。
       给出结点定义
       struct tree
       {
               int data;
               tree *left, *right;
       };
       typedef struct tree node;
       typedef node *Bitree;
       为了方便coding,给出Stack栈操作,push(pNode);pop();


五。一个M*M的矩阵A,一个字符串数组S,比较S中的字符串是否在A中的连续对角线序列中出现。
       譬如一个4*4的矩阵 1  2  3  4
                                   a  b  c  d
                                   5  6  7  8
                                   e  f   g  h
       则其连续对角线从左算:1 2 a 5 b 3 4 c 6 e f 7 d 8 g h
                                或   1 a 2 3 b 5 e 6 c 4 d 7 f g 8 h
                           从右算:4 3 d 8 c 2 1 b 7 h g 6 a 5 f e
                                或   4 d 3 2 c 8 h 7 b 1 a 6 g f 5 e
        (a)大概是写出优化高效的算法,不一定要程序,可用流程图或者文字描述,简述算法原理,计算时间复杂度。

        (b)当矩阵很大到无法加载到内存,写出解决办法。

六。给出了一些条件,具体忘了,大概有这些:

    1.一个系统要接受用户请求,用户请求为32字节,其中第一字节为优先级,后31字节为请求内容,是字符格式。

    2.由于系统处理复杂,所以同时处理的请求有限,但是还好系统可以保存请求,并且请求过的请求,再次请求可以直接返回,不用处理

    3.请求优先级总共16级,要求高级的请求总是先于低级的请求,同一级的请求中,请求次数多的现处理

问题是:

   (a)基于此要写一个任务管理调度器的核心算法,

   (b)写出数据结构

   (c)如果任务管理调度器的容量设计为20万,请计算需要的空间。

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值