2014-12-25 3 views
0

Я хочу знать, как использовать Хешинг в поиске. Например, Google или Yahoo используют алгоритмы хеширования? Используют ли крупные компании этот алгоритм Хеширования?Использование алгоритма поиска в поиске

+0

Это так от темы, с которой мы обсуждаем на SO.Попробуйте быть более конкретным и показать усилия, которые вы вложили. Это не сайт подготовки рабочих мест. –

+0

Я считаю справедливым сказать, что любая нетривиальная часть программного обеспечения каким-то образом использует хэширование (не в последнюю очередь потому, что многие обычно используемые стандартные контейнеры/коллекции используют хэш-функции внутри). – NPE

ответ

1

Да. Обратитесь к рангу страницы книги и за ее пределами, там вы обнаружите, что google использует hashing.Hashing делает вашу сложность слишком низкой во всех аспектах, как поиск, добавление и т. Д. Позвольте мне рассказать вам, что вы делаете онлайн-чат-сайт. И у вас есть для обработки миллиона пользователей. Вы можете использовать линейный поиск, который займет наихудшее время около 1 миллиона * раз, чтобы извлечь один элемент. Пользователю придется ждать много на стороне клиента. Но вы сэкономите деньги, поскольку вы не используете дополнительные но если вы будете использовать время хеширования, то будет время, чтобы извлечь только один элемент. Но здесь система будет стоить вам дорого, поскольку вам придется платить за дополнительное хранилище (1 миллион записей хранения данных с лучшей функцией хэширования). Но здесь задача состоит в том, чтобы иметь лучшую хэширующую функцию, которая может вызвать минимальные столкновения для хранения элементов. Хеширование - большая тема, которую я не могу объяснить короче. обратитесь к этим ссылкам:

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/

Google связывает триллионы веб-сайтов, о 1156000000.let Предположим, 1 милли второй в получении одной страницы из db.In В худшем случае это займет около 1156000000 * 1 мс = 1156000 сек = 5,35 года. Пользователю в худшем случае придется ждать 5 лет для поиска. Поэтому этого не может быть сделано в простой линейный поиск. У Google есть свои скрытые сложные алгоритмы (вы можете найти в книге выше). Google имеет свои собственные серверы для хранения хеширование записей, из которых записи будут извлекаться с помощью некоторых функций хеширования. У меня нет большой идеи о том, как работает Google. Что я знаю, Google использует вероятность много. Обратите внимание на эту книгу о том, как работает Google - http://langvillea.people.cofc.edu/UIUC.pdf

Смежные вопросы