Главная страница
    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.011 c
15-1148800094
Ega23
2006-05-28 11:08
2006.06.18
Зелёные - с праздником!!!


9-1130801569
Bogdan1024
2005-11-01 02:32
2006.06.18
Armed Man v1.06


4-1143054881
DesWind
2006-03-22 22:14
2006.06.18
Создание панели задач


15-1148418317
Andy BitOff
2006-05-24 01:05
2006.06.18
Новый вирус, Уязвимость в Microsoft Word.


9-1130206311
JUS
2005-10-25 06:11
2006.06.18
Зацените мою демку





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский