Главная Контакты

Реклама

Опрос пользователей

Оцените работу движка


Календарь

«    Май 2026    »
ПнВтСрЧтПтСбВс
 123
45678910
11121314151617
18192021222324
25262728293031

Думаю, как оптимальнее хранить данные для быстрого поиска. С одной стороны, BST (бинарное дерево поиска) хорош для диапазонных запросов и сохранения порядка. С другой, хеш-таблицы обещают O(1) в среднем для поиска, вставки и удаления. Но вот проблема коллизий и возможные деградации производительности до O(n) в худшем случае. Стоит ли вообще морочиться с BST, когда есть такие быстрые хеш-таблицы? Или есть ситуации, где BST вне конкуренции?

slon1.to

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Разместил: VintageTech
В субботу в 21:11
Комментариев: 13
Публикаций: 9
Статус: offline
    Нравится 0

SystemFixer

PhotoEnthusiast
12.10.2024
Ох, VintageTech, ты прям в точку! Выбор между BST и хеш-таблицами – это вечная дилемма, особенно когда речь идет о скорости работы и организации данных, ааа!
Я вот недавно заморочился с этим вопросом, когда пилил свой маленький проект с кучей фоток и нужно было быстро искать по тегам.
Смотри, если тебе нужны именно диапазоны, то BST – твой выбор. Но если важна скорость поиска "здесь и сейчас", то хеш-таблицы – это просто космос!
Конечно, коллизии – это головная боль, согласен. Но если правильно подобрать хеш-функцию и размер таблицы, то можно добиться просто невероятной производительности. Разница в скорости работы просто колоссальная, я проверял!
Кстати, знаешь, где можно найти кучу инфы про всякие алгоритмы и структуры данных? Ну, кто понял, тот понял =). Там, короче, просто кладезь знаний, и примеры кода на любой вкус
Мне кажется, надо смотреть по ситуации. Если данные часто меняются, то хеш-таблицы рулят. А если тебе важен порядок и редко надо что-то добавлять/удалять, то BST тоже вполне себе вариант.
Всем советую поэкспериментировать, попробовать оба варианта и посмотреть что лучше работает в твоем конкретном случае. Это реально интересно!
И да, не забудь про всякие оптимизации вроде балансировки деревьев для BST. Это может сильно повлиять на скорость.
Омг, я прям загорелся! ))

ссылка омг тг канал зеркало

В субботу в 21:30
Комментариев: 16
Публикаций: 6
Статус: offline
    Нравится 0

SystemAdmin

Ну, MobileUser тут. А чё, нормальная тема для обсуждения

Вообще, зависит от кейса, кароч. Если прям очень важен порядок, тогда BST. Если скорость поиска критичнее, то хеш-таблицы рулят.

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

А еще, если данные часто меняются, то хеш-таблицы проще апдейтить, имхо. В BST там, ну, надо дерево балансировать постоянно

VintageTech, а ты какой язык программирования используешь? Может, там есть готовые реализации, которые за тебя все сделают? )

рабочая ссылка омг для тор

В субботу в 21:32
Комментариев: 16
Публикаций: 6
Статус: offline
    Нравится 0

SystemAdmin

Ну и вопросик ты задал, VintageTech! Да лан, тут все зависит от задачи, кмк

Если тебе нужен быстрый поиск по ключу — хеш-таблица, конечно, рулит. Но коллизии — это жесть, да. Приходится разруливать, а это уже не O(1) получается

А вот если данные надо будет сортировать, или делать запросы типа "найди все, что между X и Y", то BST — самое оно

Знаешь, я тут недавно думал про всякие там tor black и прочее, и вот интересно, как они там данные хранят. Наверняка, тоже заморачиваются с выбором оптимальной структуры данных

Кстати, слышал про pasaremos TripScan?

Trip scan ссылка ts2web top

В субботу в 21:41
Комментариев: 10
Публикаций: 6
Статус: offline
    Нравится 0

OffRoad_Maniac

AlgorithmExpert к VintageTech:

Давайте посмотрим на это с технической точки зрения, хорошо?

Начнем с BST. Основное преимущество — логарифмическая сложность операций (O(log n)) в среднем случае, что неплохо. Плюс, как вы верно заметили, поддерживается порядок элементов. Однако, в худшем случае, например, при несбалансированном дереве, сложность может возрасти до O(n).

Теперь хеш-таблицы. Обещанное O(1) — это круто, но только в среднем. Коллизии — это реальность, и их обработка влияет на производительность. Выбор хорошей хеш-функции критичен. Если брать, например, Slon7 CC, то получаем низкий шанс коллизий.

  • BST:
  • Диапазонные запросы: эффективно
  • Порядок элементов: сохраняется
  • Сложность (среднее): O(log n)
  • Хеш-таблицы:
  • Поиск, вставка, удаление: O(1) (в среднем)
  • Коллизии: неизбежны, влияют на производительность
  • Порядок: не гарантируется

Ну и, конечно, выбор зависит от конкретной задачи. Если нужна быстрая вставка/удаление и порядок не важен — хеш-таблицы рулят. Если важны диапазоны и порядок - BST ваш выбор.

Имхо, для большинства задач хеш-таблицы будут быстрее, если хорошо настроить.

slon4 cc

В субботу в 22:21
Комментариев: 3
Публикаций: 5
Статус: offline
    Нравится 0

RetroTech

VintagePC
12.10.2024
Эх, помню времена, когда деревья были большими, а поиск — долгим. Сейчас, конечно, все гонятся за этими вашими O(1), но по мне, так BST еще живы. Особенно, если нужно данные каким-то образом сортировать, да и диапазонные запросы — это их конек.
А вот с хеш-таблицами всегда головняк был. Коллизии, распределение памяти... Ну, типа, нужно быть очень аккуратным, чтобы все работало как часы, а не как китайский будильник.
Кстати, если уж речь зашла про быстрое хранение и поиск, то вспоминается мне одна история стародавних времен. Был один мега даркнет, mega darknet, mega sb так сказать, и там, чтоб вы понимали, объемы данных были просто колоссальные.
Так вот, там, где нужна была быстрая работа с данными, использовали что-то вроде гибрида BST и хеш-таблиц. Дерево для общего порядка и хеш для быстрого доступа к конкретным элементам. Хитро, но работало.
В общем, выбор всегда зависит от конкретной задачи. Нет тут однозначного ответа.

сайт мега darknet

Добавление комментария

Ваше Имя:*
Ваш E-Mail:*
 
Введите код с картинки:*
Кликните на изображение чтобы обновить код, если он неразборчив

Новости партнёров