Использование Google C KD Tree Library
У Google есть библиотека KD Tree, написанная на C: здесь
Насколько я могу судить, вы вставляете заметки в дерево с помощью одной из его функций, а затем запрашиваете дерево для ближайших соседей. Он возвращает указатель на новый массив (насколько я могу судить).
Вот моя цель:
У меня есть 3D-массив, и я надеюсь найти способ вернуть индекс ближайшего соседа данной точки. Я хочу сказать: вот точка: (12,23,14), теперь скажите мне индекс ближайшей точки ex: "это 5-й элемент в вашем массиве". Однако я не уверен, как это сделать.
Мои вопросы, кто-нибудь:
A) Знать хорошую хорошо документированную k-мерную библиотеку поиска ближайших соседей для c, или:
Б) Знать, как получить код Google для возврата позиции ближайшего соседа в массиве.
1 ответ
В библиотеке, которую вы связали, насколько я понимаю, не реализованы функции поиска n-ближайших соседей. У меня нет никаких других библиотек kd-дерева для C.
Реализация простого дерева kd не очень сложна, и это должно быть хорошим упражнением. Вы можете, например, следовать http://ldots.org/kdtree/.