我最近在技術面試中被問到過這樣的問題。整理圖書 - 搜索相關問題
你必須找到一個特定的書在圖書館和你走了進去的那一刻,你看到所有的書散落各地的圖書館,即書不放在庫內有組織的方式。你將如何繼續尋找那本特定的書?除了您知道Name of the Book
之外,沒有關於該書的規範。
我知道這是一些相關的搜索算法,但是哪種算法可用於在這種情況下,搜索的書嗎?
我最近在技術面試中被問到過這樣的問題。整理圖書 - 搜索相關問題
你必須找到一個特定的書在圖書館和你走了進去的那一刻,你看到所有的書散落各地的圖書館,即書不放在庫內有組織的方式。你將如何繼續尋找那本特定的書?除了您知道Name of the Book
之外,沒有關於該書的規範。
我知道這是一些相關的搜索算法,但是哪種算法可用於在這種情況下,搜索的書嗎?
進行線性搜索開始在一個良好的方法第一本書,並搜索每本書,直到你遇到你想要的書的第一次出現(當然可能有多個副本)。
如果你是唯一的搜索者,並且有很多書,那麼在查找書之前對它們進行排序看起來會浪費很多時間 - 除非你打算在將來尋找更多書籍。
你總是可以找圖書館管理員告訴你在哪裏這本書是他們的系統上,或者你可以招募一些朋友來幫你搜索和並行分裂問題並工作。
編輯 還有一個叫Grovers algorithm量子算法(如果你在對諸如此類的事情),比對未排序的數據庫進行線性搜索快,但我不知道太多關於說實話。
在這種情況下,你要麼
好吧,如果沒有系統,你必須看每本書。我想這個訣竅是提出一個系統,以確保最終你檢查每本書,而不是兩次看同一本書。 – NPE 2011-04-14 11:30:48
@aix - 把書從窗口扔出來,如果它不是想要的:P – 2011-04-14 11:33:46
@Petar Minchev:好的建議。如果你在地下室但可能會很難處理:) – NPE 2011-04-14 11:35:21