| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > хеширование |
| Автор: Unionuser 26.8.2012, 19:39 |
| Подскажите пожалуйста как прохешировать слово first? |
| Автор: boostcoder 26.8.2012, 20:05 |
| алгоритмом хеширования. |
| Автор: NoviceF 27.8.2012, 12:00 | ||||||
| Я вообще не в теме, но у Страуструпа видел такой пример хэширования, может это подтолкнёт копать в нужную сторону: "Для поиска имени в таблице функция look() использует простой хэш-код (записи, в которых имена имеют одинаковый хэш-код, связываются вместе):
Иными словами, с помощью операции ^ ("исключающее ИЛИ") все символы входной строки p поочередно добавляются к ii. Разряд в результате x^y равен 1 тогда и только тогда, когда эти разряды в операндах x и y различны. До выполнения операции ^ значение ii сдвигается на один разряд влево, чтобы использовался не только один байт ii. Эти действия можно записать таким образом:
Для хорошего хэш-кода лучше использовать операцию ^, чем +. Операция сдвига важна для получения приемлемого хэш-кода в обоих случаях. Операторы
гарантируют, что значение ii будет из диапазона 0...TBLSZ-1. Напомним, что % - это операция взятия остатка". Это Бьерн Страуструп. Язык программирования С++ страница 76 |
| Автор: Unionuser 27.8.2012, 16:25 |
| Спасибо большое.А можно устно рассказать в чем заключается хеширование по именам?Или подскажите какие нибудь сайты где можно поподробнее почитать про хеширование(для чайников),а то совсем не могу защитить курсовую((( |
| Автор: feodorv 27.8.2012, 16:46 |
Ну, есть же https://www.google.ru/search?ie=UTF-8&hl=ru&q=%D1%85%D0%B5%D1%88%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5 или http://yandex.ru/yandsearch?text=%D1%85%D0%B5%D1%88%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&clid=48648&lr=213 |