Скажем, мы просматриваем график и хотим быстро определить, был ли узел обнаружен раньше или нет. У нас есть несколько предусловий.Быстрый поиск элементов для функционального языка (Haskell)
- Узлы были отмечены с целыми числами значений 1..N
- График осуществляется при узлы, имеющие список смежности
- Каждое целое значение от 1..N происходит на графике, который имеет размер N
Любые идеи для этого в чисто функциональном виде (без разрешенных таблиц хэшей или массивов).
Мне нужна структура данных с двумя работающими над ней функциями; add (добавляет встреченное целое число) и lookup (проверяет, добавлено ли целое число). Оба должны предпочтительно принимать O (n) время, амортизированное для N повторений.
Возможно ли это?
Я предполагаю, что Data.Set даст логарифмическую или квазипостоянную производительность на addToSet и члене, в отличие от ожидаемой постоянной работы с хэш-таблицами? – 2008-11-13 22:51:24