2012.4.24百度联盟搜索部电话面试

虽然最近在看面试的题,然后电话来了面试,感觉都是差不多的题,但是想完全答好,还是有些困难。

1.虚函数是怎么回事,怎么实现的

2.析构函数可以是虚函数吗?构造函数是否可以是虚函数,为什么?

析构函数一般都是虚函数。构造函数不可是虚函数,因为在运行构造函数的时候对象的动态类型还没有确定,构造函数不能进行动态绑定。

2.C语言中的static和extern的解释

常见问题

3.new和malloc的区别

4.int a[]和malloc的区别,如果定义一个int a[100000000]为什么还要有malloc

5.进程和线程的区别,有进程了为什么还要有线程,线程中的哪些变量是其私有的,不可以共享


①进程是系统进行资源分配和调度的一个独立单位。线程是进程的一个实体,是CPU调度和分派的基本单位。线程自己基本上不拥有系统资源,但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。由于线程比进程更小,基本上不拥有系统资源,线程上下文切换比进程上下文切换要快得多,故对它的调度所付出的开销就会小得多,从而显著提高系统资源的利用率和吞吐量。
②一个程序至少有一个进程,一个进程至少有一个线程。进程在执行过程中拥有独立的内存单元地址空间,而多个线程共享内存,从而极大地提高了程序的运行效率。
③进程间通信IPC需要特别的方法,线程间可以直接读写进程数据段(如全局变量)来进行通信。


进程调度开销较大,创建多个进程也降低了系统的响应时间,WEB服务器需要同时响应多个用户的请求,故引入了线程,进一步提高系统的并发性。


每个线程有自己的堆栈和程序计数器为其执行上下文。


6.排序的稳定性的定义;哪些排序算法是稳定的;堆排序的过程和平均时间复杂度与最坏时间复杂度


选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,而冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。

     首先,排序算法的稳定性大家应该都知道,通俗地讲就是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。在简单形式化一下,如果Ai = Aj,Ai原来在位置前,排序后Ai还是要在Aj位置前。

堆排序的平均时间复杂度和最坏时间复杂度均为O(nlogn)

7.一列数中寻找第K大的数,时间复杂度是多少(用快排的方法,时间复杂度是多少)


8.IP协议有什么特点,其与TCP协议的不同之处,有了IP协议为什么还要有TCP协议


4月26日又来了电话,问了一些挺基础的问题,涉及到一些基础的知识和学过的课程,简历上写的太多了,但是那些课都没好好上过所以学过什么都忘了。还有比较简单的算法的问题就在《编程之美》上就可以找到答案。

1.介绍一下做过的最好的项目,实现什么功能在其中的职责是什么

2.判断两个单链表是否相交,时间复杂度

3.多线程编程的问题:多线程的互斥有哪些方法,global变量使用时是否可以不加锁,是否用有过多线程编程

4.一个int a[N],怎么用比较好的方法找出最大最小数

5.大数据量的处理方法,有哪些,Map-Reduce原理,Bit-Map,Hash-Map等

MapReduce中文翻译版

6.搜索引擎构建原理步骤



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值