我想知道搜索中散列的用法。例如谷歌或雅虎使用哈希算法?大公司是否使用這種散列算法?搜索中的散列算法用法
回答
是的。請參閱本書的網頁排名和更高版本,在那裏你會發現谷歌使用哈希。哈希讓你的複雜度在所有方面都很低,比如搜索,添加等。讓我告訴你一種情況,假設你正在創建一個在線聊天網站。並且你有可以處理100萬個用戶。你可以使用線性搜索,這將花費大約100萬次的最差時間來獲取一個元素。用戶將不得不在客戶端等待很多。但是,由於您不使用額外空間的複雜性。但如果你將使用哈希時間將只有一個時間獲取一個元素。但在這裏系統將花費你很多,因爲你必須支付額外的存儲空間(100萬條數據存儲記錄具有更好的哈希函數)。但是,這裏面臨的挑戰是要有一個最佳的散列函數,它可以導致最小的碰撞來存儲元素。散列是我無法簡單解釋的一個大問題。請參閱以下鏈接:
What is a good Hash Function?
http://en.wikipedia.org/wiki/Hash_function
http://www.cs.cmu.edu/~clo/www/CMU/DataStructures/Lessons/lesson11_2.htm
http://www.tutorialspoint.com/dbms/dbms_hashing.htm
http://www.internetlivestats.com/total-number-of-websites/
谷歌鏈接的網站萬億美元,約1156000000.let我們假設1毫秒從db.In獲得一個頁面最壞的情況下,大約需要1156000000 * 1毫秒= 1156000秒= 5.35年。用戶在最壞的情況下將需要等待5年才能搜索。因此,這不能通過簡單的線性搜索來完成.Google有自己的隱藏複雜算法(您可以在上面的書中找到).Google有自己的服務器來存儲哈希記錄,從那裏通過使用一些散列函數獲取記錄。我對谷歌的工作原理沒有太多的想法。我所知道的是谷歌使用概率很多。在本書中查找谷歌如何工作 - http://langvillea.people.cofc.edu/UIUC.pdf
- 1. 散列算法
- 2. 鬆散的搜索方法
- 3. 搜索算法
- 4. 搜索算法
- 5. RAR3散列算法
- 6. 60bit散列算法
- 7. SPARQL中的搜索算法?
- 8. 在社交網絡中執行分散搜索的算法
- 9. 日期的散列算法
- 10. 樹搜索算法
- 11. 跳搜索算法
- 12. SQLAlchemy搜索算法
- 13. MySQL搜索算法
- 14. .net搜索算法?
- 15. 搜索算法 - Java
- 16. 使用A *搜索算法
- 17. 在方法值中搜索紅寶石中的散列值
- 18. 根據以前的用法排列搜索結果的算法
- 19. 搜索使用散列
- 20. 最快的搜索算法
- 21. Java的搜索算法
- 22. Pacman的搜索算法
- 23. ASP.NET MVC 4散列算法
- 24. SHA1散列算法問題
- 25. 鹽漬散列算法
- 26. 填充MD5散列算法
- 27. 無法計算散列
- 28. 字符串散列算法
- 29. 當散列不是算法
- 30. 散列算法,它的用途?
這與我們在SO討論的內容非常相關。試着更具體一些,並展示您所付出的努力。這不是一個工作準備網站。 –
我認爲可以公平地說,任何不平凡的軟件都會以某種方式使用散列(至少因爲許多常用的標準容器/集合在內部使用散列函數)。 – NPE