Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.06.18;
Скачать: [xml.tar.bz2];

Вниз

Что такое хэш-таблица. Как ее реализовать на Дельфи?   Найти похожие ветки 

 
Галинка ©   (2006-05-30 22:09) [0]

Собственно сабж. Кто в курсе, помогите ))


 
Kolan ©   (2006-05-30 22:16) [1]

Смысл хеша вот какой: Допустим у вас есть таблица из имён:

Вася
Гриша
Саша

И вы хотите произвести поиск по таблице. Понятно что гораздо быстрее искать не сравнивая строки, а работая счислами.

Так вот, чтобы получить из строки число используется хеш функция, которая по строке получаетт число.

Сдесь возникает одна проблема - колизии. То есть разным строкам может быть поставлены в соответствие одинаковые строки.

PS
 В интернете по этому поводу много информации. В C есть наработки...


 
Галинка ©   (2006-05-30 23:00) [2]

в том то и дело что наработки есть в си... а мне надо все это в Дэльфи. К тому же мне это посоветовали для хранения объектов.


 
Галинка ©   (2006-05-30 23:26) [3]

У Бакнелла есть оказывается ))


 
Kolan ©   (2006-05-30 23:27) [4]

Для объектов не знаю. И что это вообще может значить тоже.
А нарабатывать там особо нечего. Берещь хеш ф-цию, допустим:

int I = 0;
 unsigned long Hash = 0;
while (*(StringToHash + I) != "\0")
 {
   Hash = (31 * Hash + *(StringToHash + I));
   I++;
 }
   return Hash;
 }


НА Delphi как-то так(давно писал уже не помню..):
Hash := 0;
for I := 1 to Lenghth(S) do
 Hash := 31*Hash + Length(S) + I;


А теперь можно искать по этому хешу...


 
Kolan ©   (2006-05-30 23:28) [5]

Уверен что для Delphi всё уже написано...


 
tesseract ©   (2006-05-31 10:11) [6]


> У Бакнелла есть оказывается ))

Причём не один раз.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.06.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.01 c
15-1148362806
cyborg
2006-05-23 09:40
2006.06.18
Нужно в одном интерпретаторе добавить функцию


1-1147371417
GanibalLector
2006-05-11 22:16
2006.06.18
TMethod


15-1148294507
Карелин Артем
2006-05-22 14:41
2006.06.18
Нужна инфа по численности насления нас. пунктов.


1-1147125122
QuickFinder
2006-05-09 01:52
2006.06.18
Событие OnDrawCell у TStringGrid


2-1149249027
XTD
2006-06-02 15:50
2006.06.18
Unsatisfied forward or external declaration: ????





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский