Я уже искал эту информацию. Найдено это:Сложность поиска по квадрату дерева
https://groups.google.com/forum/#!topic/uw.cs.cs240/MGfrsvKAiMA
и это:
How can worst case complexity of quad tree O(N)?
, но я не считаю, что это отвечает мою проблему. Возможно, первое, но я не понимаю объяснения. До такой степени.
У меня есть квадратное дерево над дискретным пространством (2d квадратная таблица сущностей). Это дерево регионов, как описано на странице английской Википедии (https://en.wikipedia.org/wiki/Quadtree#Types). В каждом регионе может находиться только одна сущность. Каждая сущность имеет свои дискретные координаты.
Я реализовал метод поиска всех объектов в определенном (дискретном) AABB, работающем точно так же, как функция queryRange()
на вышеупомянутой странице Wiki.
Мой вопрос: какова временная сложность для этого queryRange()
функция?
Я попытался выяснить это сам, но, похоже, он зависит от многих различных факторов, таких как: глубина дерева, количество элементов в дереве, размер данных AABB. Я думаю, что в его основе это связано с количеством поддеревьев, посещенных рекурсией queryRange().
Также я был бы благодарен за любые достоверные источники. Я пишу магистерскую диссертацию, и мне нужны цитаты. Я действительно не могу показаться, что Google ничего хорошего на эту тему.
Может ли быть достаточно для вас зависимость от «листьев/узлов, пересекающих AABB»? Если я не ошибаюсь, должно быть легко показать, что сложность равна $$ \ mathcal O (l) = \ mathcal O (n) $$, где $$ n $$ - количество узлов и $$ l $ $ количество листьев в диапазоне. –
Библица квадроциклов Hannan Samet: Основы многомерных и метрических структур данных. Вы должны найти нужную информацию там. – AlexWien