阿里巴巴2015校招笔试题(含答案、解析)

进修社 人气:7.34K

 ①、逻辑

阿里巴巴2015校招笔试题(含答案、解析)

下列描述中唯一错误的是( )

下面选项内容中的A,B,C,D,E,F都是表示某个选项

A:本题有五个选项是正确的

B:B正确

C:D正确

D:DEF都正确

E:ABC中有一个错误

F:如果ABCDE都正确,那么F也正确

答案:B

解析:首先理解题意:本题的条件和结论是互为因果的。破解这种循环论证题目的方法就是选择某一个选项,假定它对或者错,然后推理。并且,这里的“某一个选项”常常可以根据题目找到推理链条中的薄弱环节。如本题的题干说“描述中唯一错误”,而一共有A到F6个选项,马上得知“6个选项中有5个是对的,1个是错的”,这即表明“A:本题有五个选项是正确的”是对的。而“C:D正确”“D:DEF都正确”都涉及了D,不妨假定“C:D正确”是错的.,从而完成推理。B错误,其余都正确

 ②、算法

个数约为50K的数列需要进行从小到大排序,数列特征是基本逆序(多数数字从大到小,个别乱序),以下哪种排序算法在事先不了解数列特征的情况下性能最优(不考虑空间限制)。( )

A:冒泡排序

B:改进冒泡排序

C:选择排序

D:快速排序

E:堆排序

F:插入排序

答案:E

解析:冒泡排序、选择排序、插入排序的基本时间复杂度为O(N^2)。如果数列基本升(降)序,而题目要求升(降)序排列,则改进的冒泡排序可以近似为O(N)。基本有序的数列,常规的快速排序时间复杂度退化成O(N^2),而堆排序无论任何情况下的时间复杂度都是O(NlogN),因此,堆排序是最优的。

 ③、系统设计

下列方法中,( )不可以用来程序调优?

A:改善数据访问方式以提升缓存命中率

B:使用多线程的方式提高I/O密集型操作的效率

C:利用数据库连接池替代直接的数据库访问

D:使用迭代替代递归

E:合并多个远程调用批量发送

F:共享冗余数据提高访问效率

答案:B

解析:A、C、F都是从优化内存方面来进行程序调优;E可以提高CPU的访问效率;普通的递归往往时间复杂度较高,使用迭代后能够明显改善(另外一种调优方式可以考虑带缓存的递归);而B中,多线程可以提高CPU的利用效率,但对于I/O密集型,瓶颈在于数据的获取,所以B不正确。