Адресная книга на основе Trie и эффективный поиск по имени и контактному номеру

это известный подход к разработке адресной книги на основе структуры данных trie. Это эффективная структура данных для строк. Предположим, если мы хотим создать эффективный механизм поиска для адресной книги на основе имен, номеров и т. д., какова эффективная структура данных, обеспечивающая эффективный и быстрый поиск по памяти на основе любого типа поисковых терминов, независимо от типа данных?


person zudokod    schedule 04.08.2011    source источник
comment
Числа — это просто строки цифровых символов, или, по крайней мере, ничто не мешает вам представлять их как таковые. Я не могу придумать тип данных, который было бы невозможно или неэффективно представлять в виде строки для этого конкретного приложения. Вы, вероятно, не можете эффективно представлять изображения в виде строк или использовать попытку для их поиска, но тогда это не ваш типичный поиск в адресной книге.   -  person n. 1.8e9-where's-my-share m.    schedule 04.08.2011


Ответы (1)


Это странный вопрос, возможно, вам следует добавить больше информации, но вы можете использовать структуру данных trie не только для строк, но и для многих других типов данных. Определение дерева состоит в том, чтобы создать словарь с соседней моделью дерева. Я знаю kart-trie, который чем-то похож на trie и использует модель бинарного дерева. Таким образом, это та же структура данных, но с другой моделью дерева. Kart-trie использует умный алгоритм чередования ключей, чтобы скрыть структуру данных trie в двоичном дереве. Это не patricia trie или radix-trie.

  1. Хороший алгоритм управления деревьями конфигурации с подстановочными знаками?
  2. http://code.dogmap.org/kart/

Но я думаю, что тройное дерево сделало бы тот же трюк:

  1. http://en.wikipedia.org/wiki/Ternary_search_tree
  2. http://igoro.com/archive/efficient-auto-complete-with-a-ternary-search-tree/
person Gigamegs    schedule 04.08.2011