我最近在技术面试中被问到这样的问题.
你必须在图书馆里找到一本特定的书,当你进去的那一刻,你看到所有的书都散落在图书馆周围,即图书没有以有组织的方式放在图书馆内.你将如何着手寻找那本特定的书?除了您知道书的名称外,没有关于该书的说明.
我知道这与某些搜索算法有关,但在这种情况下可以使用什么算法搜索书籍?
最佳答案 从第一本书开始执行线性搜索并搜索每本书,直到您遇到所需书籍的第一次出现(当然可能有多个副本).
如果你是唯一的搜索者并且有很多书籍,那么在寻找这本书之前对它们进行排序似乎是非常低效的浪费时间 – 除非你打算在将来搜索更多书籍.
您可以随时要求图书管理员告诉您这本书在他们的系统中的位置,或者您可以邀请一些朋友帮助您搜索并分解问题并同时工作.
编辑
还有一种称为Grovers algorithm的量子算法(如果你涉及到那种类型的东西)比线性搜索未分类的数据库要快,但我不太了解它.