Хеш похож на имя человека - это короткий способ запомнить человека, даже если он не должен быть уникальным. Если вам нужно найти какую-то информацию о ком-то, вы можете просто найти его по имени и выполнять другие проверки, только если два или более людей имеют одно и то же имя.
В этом сила хеширования, и так же, как помнить людей гораздо проще по имени, чем по номеру социального страхования, найти объект по его хэш-коду намного проще, чем сравнивать объект со всем, что уже есть в вашей коллекции.
Теперь, в этом примере, если вы ищете кого-то в телефонной книге по имени, вы, вероятно, найдете его за O (log n), потому что имена отсортированы в алфавитном порядке, и потому что вам нужно сделать бинарный поиск. Однако если вместо этого вы «хэшируете» 100 человек, родившихся в 1900-х годах, по годам их рождения, то вам понадобится не более 4 сравнений в хэш-таблице / телефонной книге (по одному на цифру), чтобы найти любой год по хешу, постоянное время Затем, если два человека родились в одном году, вы можете использовать другую информацию, чтобы найти нужного вам человека, и в среднем, если ваша таблица не слишком полная (скажем, если у вас не более 50 человек на 100 разных лет) рождения), ваши поиски будут постоянными.
(Если ваша таблица заполнена, скажем, более чем на 50%, вы всегда можете удвоить ее размер, чтобы уменьшить количество столкновений и, следовательно, ускорить поиск.)
Дополнительная информация:
Если вы когда-либо слышали о MD5 или SHA-1 SHA-2 хэши для файлов, они похожи на "отпечатки пальцев" файла. Хотя возможно иметь два файла с одинаковым хешем, это сделано настолько маловероятно, что для практических целей это невозможно; следовательно, если у вас есть хэш двух файлов, вы можете сравнивать файлы по их отпечаткам, а не по данным, что намного быстрее.