百度笔试题及答案 .pdfVIP

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

百度笔试题及答案

第一题简答题

1.多线程和多进程模式有什么区别?在用两种模型开发服务程序时,分别有

什么优缺点?采用长连接和短连接模式有什么区别?分别有什么优缺点?

采用同步和异步模式有什么区别?分别有什么优缺点。

(1)启动进程的时候,操作系统会为进程分配资源,其中最主要的资源是内存

空间,因为程序是在内存中运行的。在进程中,有些程序流程块是可以乱序执

行的,并且这个代码块可以同时被多次执行。实际上,这样的代码块就是线程

体。线程是进程中乱序执行的代码流程。当多个线程同时运行的时候,这样的

执行模式成为并发执行。

对于一个进程中的多个线程来说,多个线程共享进程的内存块,当有新的线程

产生的时候,操作系统不分配新的内存,而是让新线程共享原有的进程块的内

存。因此,线程间的通信很容易,速度也很快。不同的进程因为处于不同的内

存块,因此进程之间的通信相对困难。线程切换快,但实现稍复杂。进程易实

现,较稳定,但性能与线程相比较差。

(2)所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接

保持期间,如果没有数据包发送,需要双方发检测包以维持此连接,一般需要

自己做在线维持。

短连接是指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,

则断开此TCP连接,一般银行都使用短连接。

长连接多用于操作频繁,点对点的通讯,而且连接数不能太多情况,。每个TCP

连接都需要三步握手,这需要时间,如果每个操作都是先连接,再操作的话那

么处理速度会降低很多,所以每个操作完后都不断开,次处理时直接发送数据

包就OK了,不用建立TCP连接。而像WEB网站的http服务一般都用短链接,

因为长连接对于服务端来说会耗费一定的资源,而像WEB网站这么频繁的成千

上万甚至上亿客户端的连接用短连接会更省一些资源,如果用长连接,而且同

时有成千上万的用户,如果每个用户都占用一个连接的话,那可想而知吧。所

以并发量大,但每个用户无需频繁操作情况下需用短连好。

(3)同步:调用方调用一个程序,等待返回,然后再继续下面的程序处理

异步:调用方调用一个程序,不等待返回,继续执行下面的程序。

1)异步通信简单,双方时钟可允许一定误差。同步通信较复杂,双方时钟的允

许误差较小。

2)通信效率:异步通信低,同步通信高。

1.给定如下的n*n的数字矩阵,每行从左到右是严格递增,每列的数据也是

严格递增

123

356

489

现在要求设计一个算法,给定一个数k判断出k是否在这个矩阵中。描述算

法并且给出时间复杂度(不考虑载入矩阵的消耗)

算法思想:

沿着对角线查找,获得i,使得k位于a[i][i]与a[i+1][i+1]之间。

k只可能存在于a[i][i]对应的右上角矩阵和a[i+1][i+1]对应的左下

角矩阵。

使用递归法继续查找即可。

时间复杂度O(n)

intsearchK(intint_arr[][],intn,intstartlow,intstartclm,intk)

{

intlefttemp=0;

intdowntemp=0;

inti=0;

while(int_arr[startlow+i][startclm+i]k||in)

i++;

if(i==n)

return0;

elseif(arr[i][i]==k)

reuturn1;

else

return

searchK(int_arr,n,startlow,startclm+i,k)+searchK(int_arr,n,startlow+

i,startclm,k);

}

2.设一个64位整型n,各个bit位是1的个数为a个.比如7,2进制就是

111,所以a为3。

现在给出m个数,求各个a的值。要求代码实现。

#includeiostream

#includevector

usingnamespacestd;

intcount(longlongv)

{

intnum=0;

while(v)

{

v=(v-1);//执行效率为V中1的个数,时间复杂度比通过

除操作、

文档评论(0)

188****0010 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档