最近我在技术面试中被问到一个这样的问题。
你必须在图书馆里找到一本特定的书,当你走进去的那一刻,你会看到所有的书都散落在图书馆的周围,也就是说,图书馆里的书没有按有条理的方式放置。您将如何继续寻找那本书?除了您知道 之外,没有关于这本书的说明Name of the Book。
我知道这与某些搜索算法有关,但是在这种情况下可以使用什么算法来搜索书籍?
从第一本书开始执行线性搜索,然后搜索每本书,直到找到您想要的书的第一次出现(当然可能有多个副本)。
如果您是唯一的搜索者并且有很多书籍,那么在查找书籍之前对它们进行排序似乎是一种效率极低的浪费时间 - 除非您打算将来搜索更多书籍。
您可以随时要求图书管理员告诉您这本书在他们的系统上的位置,或者您可以招募一些朋友来帮助您搜索和分解问题并并行工作。
编辑 还有一种称为Grovers 算法的量子算法(如果您喜欢这类事情),它比对未排序数据库的线性搜索更快,但说实话,我对它了解不多。