<audio id="audio" title="测一测 | 检索算法基础，你掌握了多少？" controls="" preload="none"><source id="mp3" src="https://static001.geekbang.org/resource/audio/0b/e5/0b6abbc64797228db3fa85dd7a0aa6e5.mp3"></audio>

你好，我是陈东。欢迎来到基础技术篇的测试环节！

经过这几篇的学习，检索相关的基础数据结构和算法，你掌握了多少呢？为了帮助你巩固和复习之前讲到的知识，我精心设计了一套测试题，希望能帮你巩固所学，温故知新。

在这套测试题中，有20道选择题，每道题5分，满分为100。这是我们这套测试题最核心的部分。建议你花上30分钟，好好完成这套题目。

最后呢，我还为你准备了一道主观题，这道题为选做。 如果你对自己有更高的要求，我希望你可以认真思考一下，然后把你的思考过程和最终答案都写在留言区，我们一起探讨。因为主观题考察的是你的设计能力，所以你可以多思考几天。我会在下周三把解题思路放到评论区置顶，到时，记得来看啊!

还等什么，点击下面按钮开始测试吧！

[<img src="https://static001.geekbang.org/resource/image/28/a4/28d1be62669b4f3cc01c36466bf811a4.png" alt="">](http://time.geekbang.org/quiz/intro?act_id=93&exam_id=182)

## 主观题

假设有一个员工管理系统，它存储了用户的ID、姓名、所属部门等信息。如果我们需要它支持以下查询能力：

1.根据员工ID查找员工信息，并支持ID的范围查询；<br>
2.根据姓名查询员工信息；<br>
3.根据部门查询部门里有哪些员工。

那使用我们在基础篇中学习到的知识，你会怎么设计和实现这些功能呢？（小提示：你可以先想一下，这个员工管理系统是怎么存储员工信息的，然后再来设计这些功能）
