Hash Table Hash Set
-
-
02.01.2022 #76467
Николай
Ключникcheblin 02 янв 2022, 14:42судя по результатам моего поиска тут – такими структурами никто не пользуется?
если кто пользуется, накидайте ссылок какими(С/С++). спасибо.Reflector 02 янв 2022, 14:53Такие структуры памяти много жрут, потому в эмбедде редко используются, а на ПК std::set/map доступны в нескольких разновидностях и в 99% случаев ничего больше не нужно. Смотри std::unordered_set/map.cheblin 02 янв 2022, 15:47это обычные структуры данных. существующие для вполне определенных целей. со своими плюсами и минусами.
неужели в ни у кого не возникает потребности в уникальном списке….чего то там?
обходимся упорядоченным массивом и бинарным поиском? но это ж медленно.Reflector 02 янв 2022, 16:12Есть такой парадокс дней рождения, суть в том, что если взять 23 человека, то вероятность того что они родились в один день будет 50%, хотя дней в году вроде целых 365. Если перенести это на хеш таблицы, то получится что для хранения 23 значений в ассоциативном контейнере который внутренне использует массив размеров 365 значений получим 50% коллизий от чего работать такая таблица будет не особо быстро. А чтобы этих коллизий было 10% массив придется увеличить в 6.5 раз и хранятся там отнюдь не байты, потому когда, например, пишут на мк компилятор и нужно как-то хранить переменные, то обычно в качестве имен используют одну букву и обходятся простым массивом…tonyk 02 янв 2022, 17:00cheblin писал(а):это обычные структуры данных. существующие для вполне определенных целей. со своими плюсами и минусами.
неужели в ни у кого не возникает потребности в уникальном списке….чего то там?Скоро у меня возникнет. Нужно будет быстро находить EAN-код в базе из нескольких сот тысяч.
Когда-то давно делал такую штуку для поиска позиций на доске для игры в реверси. Тогда это было нужно для реализации эвристики истории. Ничего сложного, по-моему, там нет. Все алгоритмы давно описаны. Единственное над чем стоит подумать и поэкспериментировать, так это хэш-функция.
-
Viewing 0 reply threads
- Вы должны войти в систему, чтобы ответить в этой теме.