(笔试时间 120 分钟)一、简答题(本题共 30 分)1
列出至少 6 中内部排序算法,并说明复杂度及稳定性
(10 分)2
多线程同步互斥的方法有哪些
(10 分)3
进程间通信方式有哪些
哪种通信方式速度最快
(10 分)二、算法与程序设计题(本体共 45 分)1
设计一个算法,快速查找二叉树上任意两个节点的最近共同父节点,请给出算法描述和代码实现(15 分)2
给定一个有序链表,删除所有重复的元素,仅保留至出现一次的元素,请给出算法描述和代码实现(15 分)3
给定一颗二叉树,推断其是否为平衡二叉树(左右子树之差的绝对值不超过 1)(15分)三、系统设计题(本体共 25 分)1
一个分布式检索服务系统(500 台服务器),不同 query 的检索处理时间相差很大(比如有的 query 需要十几毫秒,有的需要上百毫秒甚至更多),现在发现线上很多检索由于该服务的处理超时(处理超时是指处理时间超过了上游模块设置的最大的等待处理时间
这里我们假定为 200ms)而查询失败
为了解决这个问题,需要为这个服务设计一个内存级 cache 功能,要求如下:(1)、最大限度的降低服务超时率;(2)、假如原数据有变化,尽量展现最新数据;(3)、尽量提高 cache 的命中率;为了实现上述要求,除了设计 cache 内部逻辑以外,你可以提出具体调整查询请求在分布式系统中的分派规则