2012百度数据挖掘研发工程师笔试题

本文探讨了C++ STL中的vector容器操作如push_back及clear的内存管理方式,分析了一段C语言代码的问题所在;此外还介绍了如何使用特定函数生成随机点及设计随机选取算法,同时对比了几种分类算法并讨论了K-近邻算法的不同参数设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.简单题
1.C++中STL vector 相关
 (1).push_back函数的内存分配是怎样的?
 (2).clear函数的内存分配是如何实现的?


2.(这道题目给出了一个C语言的代码,让找出foo函数中的错误或者不合理的地方)[具体代码记不清除了,大概如下]


void foo(char a[100], cnt[256])
{
   memset(cnt, 0, sizeof(cnt));
  
   while(*a != '\0')
         {
            ++cnt[*a];
            ++a;
         }
   for(char c='a'; c<='z'; ++c)
      {
         printf("%c, d", c, cnt[c]);
      }
}


int main()
{
   char a[100] = "百度abc";
   char cnt[256];
  
   foo(char a[100], cnt[256]);
}


二.算法设计


1.已知函数rand(s,t)可以给出[s,t]的小数,用该函数给出半径为R的园内的n个随机点,并分析时间复杂度。


2.已知服务器只能存贮m个请求query, 请给出一个设计,从用户的请求中随机取出m个,并尽量保证每一个query取出的概率相同,不到最后时间没人知道用户的请求量是多少。




三.
分类聚类算法相关(K-NN,linear SVM etc )
1.给出下面的样本(方块)在1-邻近,3-邻近,5-邻近 下的标签。
                       +
              
                —     +      —
                    方块位置
                   —     —


2.说明K的取值大小对算法的影响(复杂度,训练精度,测试精度等等)


3.一个厂商准备上线一个在线图片分类算法,数据量大,服务器资源有限,查询时间需要快一些,请在linear SVM, logistic regression,discriminate regression等算法中选择一个实现,并说明理由和分析,并与k-NN进行优势与劣势比较。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值