побудова дерева k-d має O(N·logN) часова складність і O(K·N) просторова складність.
– близький до O(logN)
O(N log N) time 1. За який час можна побудувати 2-d дерево? Пояснення: можна побудувати ідеально збалансоване двовимірне дерево O(N log N) часу.
Дерева KD мають деякі обмеження, в тому числі зниження продуктивності зі збільшенням кількості вимірів, особливо коли точки даних розподілені нерівномірно. Це може призвести до незбалансованих дерев і неефективного часу пошуку.
Будівля KD-Tree
- Перша вставлена точка стає коренем дерева.
- Виберіть вісь на основі глибини, щоб вісь проходила циклічно між усіма дійсними значеннями. …
- Відсортуйте список точок за віссю та виберіть медіану як опорний елемент. …
- Переходьте по дереву, доки вузол не буде порожнім, а потім призначте вузлу точку.
- Повторюйте кроки 2-4 рекурсивно, доки не буде оброблено всі точки.
Однією з головних переваг дерев K-D є те, що вони дозволяють виконувати ефективні запити k-найближчого сусіда (KNN), які корисні в таких програмах, як системи розпізнавання та рекомендації зображень. Їх також можна використовувати для запитів діапазонів, які дозволяють швидко шукати точки в межах заданого радіуса або обмежувальної рамки.
Залежно від кількості вимірів K, побудова дерева k-d займала від 30 до 60 мс. Приблизна часова трудомісткість O(D·N·logN), тобто час побудови лінійний щодо кількості вимірів і лінійний щодо розміру набору даних.