Я реализую алгоритм кластеризации Flame как способ узнать немного больше о графах и обходе графов, и одним из первых шагов является построение графа K-ближайших соседей, и мне интересно, какой самый быстрый способ будет запускать через список узлов и соединяя каждый из них только для того, чтобы сказать, что это ближайшие пять соседей. Моя мысль заключалась в том, что я начну с узла, пройдусь по списку других узлов и оставлю самые близкие в массиве, следя за тем, чтобы все, что находится за верхним n, было отброшено. Теперь я мог бы сделать это, просто отсортировав список и сохранив первые n записей, но я бы предпочел хранить меньше вещей в памяти, и поэтому мне было интересно, есть ли способ просто получить окончательный массив и обновить этот массив как Я перебираю, или если есть более эффективный способ создания графика k ближайших соседей.
Также обратите внимание, что это НЕ дубликат реализации K-ближайшего соседа в Java а>. KNNG отличается от KNN.