У меня есть список allNodes
около 60 000 узлов, соответствующих 2D-точкам. Я построение списка смежности какПоиск двумерных точек с короткими промежуточными прыжками
for(i in allNodes)
for(j in allNodes)
if(distance(i, j) <= 10) addEdge between i and j
, а затем выполняя поиск в глубину из набора sourceNodes
найти множество узлов достижимо из sourceNodes
. Как я могу сделать это быстрее, чем квадратично? Я использую C++.
Какое условие? –
@DavidEisenstat, если расстояние между двумя узлами меньше или равно 10, они образуют край –
. Как определяется расстояние? –