Форум: "Начинающим";
Текущий архив: 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.011 c