![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 | |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]() Цитата:
pu4koff , сейчас чего-то подобное первого варианта (ну если внимательно почитаете, всегда есть свободная ячейка, вот ключ есть не всегда). Вот JTG и Вадим Буренков в ту сторону говорят... А делать список списков - как-то муторно...
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
|
![]() |
![]() |
![]() |
#12 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,087
|
![]()
В случае с глобальным инкрементом, GUID или рандомом я не понимаю по какому правилу будет идти соответствие кода строке.
Пусть у нас коллекция строк пустая. Берём строку "Привет", получаем код 1, записываем. Теперь у нас в ячейке №1 есть строка "Привет". Берём вторую строку и опять она оказывается "Привет", получаем код для неё (а он у нас банальный инкремент), записываем в ячейку №2. В итоге имеем повтор строки. Если же нужно будет найти строку "Привет", то мы её не найдём, т.к. инкремент выдаст уже 3, а такого в списке у нас нет. Или я это всё неправильно понял? Кстати, есть смысл посмотреть в сторону алгоритмов шифрования и сжатия, которые будут давать в качестве результата цифровую последовательность нужной длины. Скорее массив списков должен получиться. Индекс массива - это есть хеш-код, ну и список соответствующих этому коду строк |
![]() |
![]() |
![]() |
#13 | ||
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]() Цитата:
Цитата:
Насчет дполнительных списков - есть идея хранить удаленные ключи в дополнительном массиве. Тогда сначала брать ключи оттуда, а уже потом с инкремента глобальной переменной (если массив пуст). Никаких коллизий + всегда гарантия получения незанятого идентификатора + большая скорость работы...
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
||
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
при подсчете хеш-суммы ошибка Integer Overflow. как обойти? | Человек_Борща | Общие вопросы Delphi | 2 | 09.02.2011 11:20 |
хеш-функция | chyngyz91 | Общие вопросы C/C++ | 2 | 12.12.2010 12:32 |
Графы. Хранение хранить список смежностей как хеш-таблицу. Чем не идеал? | Kn793 | Свободное общение | 7 | 08.11.2010 17:55 |
ХЕШ-таблица | iceman2112 | Общие вопросы C/C++ | 0 | 09.05.2010 13:07 |
Как лучше организовать базу данных типо как в ICQ | Руслантус | БД в Delphi | 3 | 09.08.2008 23:57 |