Изменения

Перейти к: навигация, поиск

Бор

28 байт убрано, 19:41, 13 апреля 2016
Использование бора в качестве ассоциативного массива
===Использование бора в качестве ассоциативного массива===
====Обозначения====
*<tex>k</tex> {{---}} длина строки
*<tex>m</tex> {{---}} число ключей
 
====Идея====
Благодаря тому, что бор позволяет решать задачу, описанную выше, он может выступать в качестве ассоциативного массива. Обычно, когда требуется такая структура, то используют [[Дерево поиска, наивная реализация | двоичное дерево поиска]] или [[Хеш-таблица | хеш-таблицу]].
=====Плюсы=====
Бор объединяет некоторые преимущества этих структур данных и позволяет одновременно делать следующие операции, которые каждая из структур не может делать по отдельности.
#Добавление элемента в ассоциативный массив за <tex>O(k)</tex> (а дерево может за <tex>O(k\log m)</tex>).
#Получение всех ключей в отсортированном порядке за <tex>O(m)</tex> (а хеш-таблица может только за <tex>O(m\log m)</tex>).
=Обозначения:*<tex>k</tex> {{---}} длина строки*<tex>m</tex> {{---}} число ключей ====Минусы=====
Несмотря на данные достоинства у реализации ассоциативного массива в виде бора есть следующий недостаток:
# Бор хранит строки или символы, а это значит, что у значения ключа будет ограничение на тип (строки, символы, либо числа, представленные как строки). Чтобы это исправить, будем использовать любой тип данных, у которого прописаны операторы сравнения.
Анонимный участник

Навигация